如何自动登入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

代码如下:

<?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,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);
}  

?>

作者:csdn博客 傲雪星枫

返回栏目页:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/extra/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索google play
, https
, google play 无法登录
, 模拟登入
, play
, com
, report
, google
accounts
google play app下载、google play app、google play上传app、google play发布app、上传app到google play,以便于您获取更多的相关知识。

时间: 2024-09-19 09:06:27

如何自动登入google play下载app report的相关文章

PHP实现自动登入google play下载app report的方法_php技巧

本文实例讲述了PHP实现自动登入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/ http

教你设置Win8自动登入!

win8开始支持Windows Live帐号登录,于是我们高兴地看到,每一次启动后的输入密码操作,开始成为一个挥之不去的麻烦.其实这输密码并非Win8首创,之前的XP.Win7 都有类似要求,只不过那时的我们可以利用一些特殊操作屏蔽这项功能.其实对于很多电脑本就放家里的用户来说,每次输入密码那才真叫蛋疼呢! 1. 自动登录 无密码登录其实是借助操作系统的用户帐户面板,但我们不能直接通过控制面板找到,需要手工打开"运行"(Ctrl+R)选框,输入"netplwiz"后

Win7系统开机自动打开浏览器并提示登入怎么关闭?

  Win7系统开机自动打开浏览器并提示登入怎么关闭? 1.按下"Win+R组合键"打开运行,在框中输入"gpedit.msc"按下回车键打开"组策略编辑器"; 2.在"策略组"窗口中依次展开"计算机配置"-"管理模板"-"系统"-"Internet 通信管理"; 3.在右侧双击打开"关闭Windows网络链接状态指示器的活动测试&quo

Xp系统开机输入密码登入后自动注销了怎么办

  Xp系统开机输入密码登入后自动注销了怎么办?这是最近很多使用xp系统的用户向小编反馈的问题.其实,该问题主要是由于系统中userinit文件受损导致的,若要修复,我们要有系统盘或者U盘启动工具能够进入PE,还需要一个可以正常使用的Xp操作系统,若没有一样的Xp操作系统小编推荐重新安装系统. 步骤如下: 1.首先在可以正常运行的Xp操作系统中打开我的电脑,然后展开:CWINDOWSsystem32 在文件夹中找到并复制"userinit.exe"文件到U盘中; 2.使用U盘启动工具进

qq-webview 上打开QQ客户端,QQ登入后自动打开添加QQ群的方法。。怎么做..求指导

问题描述 webview 上打开QQ客户端,QQ登入后自动打开添加QQ群的方法..怎么做..求指导 webview 上打开QQ客户端,QQ登入后自动打开添加QQ群的方法..怎么做..求指导 解决方案 你可以百度一下,实在不行加我QQ448330886

万级RPG大作《时空猎人》将登入App Store

<时空猎人>是一款安卓手机网游,次时代格斗之王,拥有DNF式豪爽打击快感,无限连击.秒杀大招.全屏幕华丽魔法.至今都是热力不减.而这款在安卓平台上备受欢迎的APRG大作<时空猎人>也将会登入App Store,iOS玩家们可以期待一番.<时空猎人>游戏截图<时空猎人>是一款横版格斗手机游戏,在2013年1月单月收入规模超就过1500万,是安卓平台上屈指可数的千万级RPG手游.此次iOS版<时空猎人>将由DNF移动版在中国地区的独家代理商.游戏将完

啊啊啊啊啊啊啊啊-怎么用Arralist 做登入注册

问题描述 怎么用Arralist 做登入注册 怎么用Arralist 做登入注册啊? 哪位大神帮帮我啊 想了半天 没想起来 解决方案 arraylist本身和注册登录没有任何关系,你可以google并且下载一些注册登录的程序看下.

C# 程序自动批量生成 google maps 的KML文件

原文:C# 程序自动批量生成 google maps 的KML文件 google maps 的 KML 文件可以用于静态的地图标注,在某些应用中,我们手上往往有成百上千个地址,我们需要把这些地址和描述批量标注到 google maps 上去,如果手工来做,太耗时间,在这里我写了一个程序批量来生成这个 KML 文件. 首先看一下 KML 文件的格式: <?xml version="1.0" encoding="UTF-8"?> <kml xmlns=

快速登入Gmail的7个实用技巧

Gmail是个极好的免费邮箱,也是很多Google Fans每天必用的Google服务. 不过Gmail并非十全十美,除了因为它已经两岁多了还戴着beta的帽子外,它8630.html">有时候也不够 稳定.比如当你试图登入Gmail时,并非每次都很顺利,有时会失败或者登入速度极慢.除了重试以外,还可以使用以下由Amit总结出来的7种方法,以快速地成功登入Gmail. 方法一:当输入Gmail用户名和密码后,一直显示loading(加载中)的提示而无法登入时,可以按ctrl+F5来强制刷新