プロセス
1. Google Playにログインします
Google Playにログインするには3つのステップが必要です
https://play .google.com/apps /publish/
https://accounts.google.com/ServiceLogin?hl=ja&Continue=https://play.google.com/apps/publish/
https://accounts .google.com/ServiceLoginAuth
2. アプリ レポートの zip
3.unzip レポート
コードは次のとおりです:
<?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); } ?>
この記事では、Google Play に自動的にログインしてアプリ レポートをダウンロードする関連内容について説明します。さらに関連する内容については、PHP に注意してください。中国語のウェブサイト。
関連する推奨事項:
Apache mod_expires と mod_headers を使用してファイル キャッシュと mod_deflate 圧縮出力を実装する方法
以上がGoogle Playに自動ログインしてアプリレポートをダウンロードする関連コンテンツを紹介します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPロギングは、Webアプリケーションの監視とデバッグ、および重要なイベント、エラー、ランタイムの動作をキャプチャするために不可欠です。システムのパフォーマンスに関する貴重な洞察を提供し、問題の特定に役立ち、より速いトラブルシューティングをサポートします

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

Dreamweaver Mac版
ビジュアル Web 開発ツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ホットトピック



