自动登入google play下载app report

                流程
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/ServiceLoginAuth

2.下载app report zip
3.unzip report


代码如下:
<?phpdefine('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,total_user_installs,active_user_installs,daily_device_uninstalls,daily_user_uninstalls,daily_device_upgrades';        $met = "daily_device_installs,current_device_installs,daily_user_installs,total_user_installs,current_user_installs,daily_device_uninstalls,daily_user_uninstalls,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, CURLOPT_URL, $serviceLoginUrl);        curl_setopt($ch, CURLOPT_COOKIEJAR, GOOGLE_PLAY_COOKIE_FILE);        curl_setopt($ch, CURLOPT_COOKIEFILE, GOOGLE_PLAY_COOKIE_FILE);         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 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', $serviceLoginRespHtml, $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, CURLOPT_URL, $loginGoogleUrl);        curl_setopt($ch, CURLOPT_POST, 1);        curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);        curl_setopt($ch, CURLOPT_COOKIEJAR, GOOGLE_PLAY_COOKIE_FILE);        curl_setopt($ch, CURLOPT_COOKIEFILE, GOOGLE_PLAY_COOKIE_FILE);         curl_setopt($ch, CURLOPT_HEADER, true);         curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);        curl_exec($ch);        curl_close($ch);        // login cookies create success        return true;        }    // download Report zip file    private function downloadReport($package, $sd, $ed, $dim, $met, $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, CURLOPT_URL, $url);        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);         curl_setopt($ch, CURLOPT_FILE, $fp);        curl_setopt($ch, CURLOPT_COOKIEFILE, 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, $sd, $ed, $downloadFile)){    $obj->unzipReport($unzipPath, $downloadFile);}?>


           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值