大佬教程收集整理的这篇文章主要介绍了PHP编程:PHP实现自动登入google play下载app report的方法,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
《PHP实现自动登入google play下载app report的方法》要点:
本文介绍了PHP实现自动登入google play下载app report的方法,希望对您有用。如果有疑问,可以联系我们。
本文实例讲述了PHP实现自动登入google play下载app report的办法,有不错的实用价值.分享给大家供大家参考.具体实现步骤如下:PHP实例
一、流程:PHP实例
1.登入google play
登入google play需要三步:
https://play.google.com/apps/publish/
https://accounts.google.com/serviceLogin?hl=en&conTinue=https://play.google.com/apps/publish/
https://accounts.google.com/serviceLoginAuthPHP实例
2.下载app report zip
3.unzip reportPHP实例
<?PHP define('ROOT_PATH',dirname(__FILE__)); define('GOOGLE_PLAY_COOKIE_FILE','google_play_cookie.txt'); /** * Login google play,download report,unzip * Date: 2013-04-17 * Author: fdipzone * Version: 1.0 */ class AndroidReportDownLoader{ private $username; private $password; private $dev_acc; /* init * @param String $username google play account * @param String $password google play password * @param String $dev_acc google play dev account */ public function __construct($username='',$password='',$dev_acc=''){ $this->username = $username; $this->password = $password; $this->dev_acc = $dev_acc; } /* * @param String $appname * @param String $sd 开始日期 * @param String $ed 结束日期 * @param String $downloadFile 保留的zip名称 */ public function run($appname='',$sd='',$ed='',$downloadFile=''){ $package = $appname; $dim = 'overall,country,language,os_version,device,app_version,carrier'; //$met = 'daily_device_installs,active_device_installs,daily_user_installs,@R_291_10586@l_user_installs,active_user_installs,daily_device_uninstalls,daily_user_uninstalls,daily_device_upgrades'; $met = "daily_device_installs,current_device_installs,current_user_installs,daily_device_upgrades"; // google modify 2013-08-06 // login google play $this->loginAuth($this->username,$this->password); // download report zip return $this->downloadReport($package,$sd,$ed,$dim,$met,$this->dev_acc,$downloadFilE); } /* login google play,create cookies * @param String $username * @param String $password * @return Boolean */ private function loginAuth($username,$password){ // step1 $mainUrl = "https://play.google.com/apps/publish/"; $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$mainUrl); curl_setopt($ch,CURLOPT_COOKIEJAR,GOOGLE_PLAY_COOKIE_FILE); curl_setopt($ch,CURLOPT_COOKIEFILE,GOOGLE_PLAY_COOKIE_FILE); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_exec($ch); curl_close($ch); // step 2 $serviceLoginUrl = "https://accounts.google.com/serviceLogin?hl=en&conTinue=".$mainUrl; $ch = curl_init(); curl_setopt($ch,$serviceLoginUrl); curl_setopt($ch,1); $serviceLoginRespHtml = curl_exec($ch); curl_close($ch); preg_match('/name="dsh"\s*id="dsh"\s*value="(.*?)"\s*/i',$serviceLoginRespHtml,$matches); // get dsh $dsh = $matches[1]; preg_match('/name="GALX"\s*value="(.*?)"\s*/i',$matches); // get GALX $galx = $matches[1]; // step 3 $loginGoogleUrl = "https://accounts.google.com/serviceLoginAuth"; $postFields = "Referer=".$serviceLoginUrl; $postFields .= "&AllowAutoRedirect=false"; $postFields .= "&conTinue=".$mainUrl; $postFields .= "&dsh=".$dsh; $postFields .= "&h1=en"; $postFields .= "&GALX=".$galx; $postFields .= "&Email=".$username; $postFields .= "&Passwd=".$password; $postFields .= "&signIn=Sign+in"; $postFields .= "&PersistentCookie=yes"; $ch = curl_init(); curl_setopt($ch,$loginGoogleUrl); curl_setopt($ch,CURLOPT_POST,1); curl_setopt($ch,CURLOPT_POSTFIELDS,$postFields); curl_setopt($ch,CURLOPT_HEADER,truE); curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1); curl_exec($ch); curl_close($ch); // login cookies create success return true; } // download Report zip file private function downloadReport($package,$dev_acc,$downloadFilE) { $url = "https://play.google.com/apps/publish/statistics/download?package={$packagE}&sd={$sD}&ed={$eD}&dim={$dim}&met={$met}&dev_acc={$dev_acc}"; $fp = fopen($downloadFile,"w"); $ch = curl_init(); curl_setopt($ch,$url); curl_setopt($ch,1); curl_setopt($ch,CURLOPT_FILE,$fp); curl_setopt($ch,GOOGLE_PLAY_COOKIE_FILE); curl_exec($ch); curl_close($ch); fclose($fp); if (file_exists($downloadFilE)){ return true; } return false; } /* unzip report * @param String $path 解压的路径 * @param String $downloadFile zip file */ public function unzipReport($path,$downloadFilE){ $exec = "unzip ".$downloadFile. " -d ".$path; sHell_exec($exec); unlink($downloadFile); // delete zip file } } // demo $username = 'testdev@gmail.com'; $password = 'abcd1234'; $dev_acc = '12345678901234567890'; $appname = 'com.testdev'; $sd = '20130417'; $ed = '20130417'; $downloadFile = 'testdev.zip'; $unzipPath = ROOT_PATH.'/testdev/'; $obj = new AndroidReportDownLoader($username,$password,$dev_acc); if($obj->run($appname,$downloadFilE)){ $obj->unzipReport($unzipPath,$downloadFilE); } ?>
相信本文所述对大家的PHP程序设计有一定的借鉴价值.PHP实例
欢迎参与《PHP实现自动登入google play下载app report的方法》讨论,分享您的想法,大佬教程code.js-code.com为您提供专业教程。
以上是大佬教程为你收集整理的PHP编程:PHP实现自动登入google play下载app report的方法全部内容,希望文章能够帮你解决PHP编程:PHP实现自动登入google play下载app report的方法所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。