PHP 中的 Google Play 商店评论 API

Posted

技术标签:

【中文标题】PHP 中的 Google Play 商店评论 API【英文标题】:Google Play Store reviews API in PHP 【发布时间】:2022-01-08 16:19:51 【问题描述】:

目前我正在尝试通过关注https://developers.google.com/android-publisher/api-ref/rest/v3/reviews/list 文档从https://play.google.com/store/apps/details?id=com.rosterelf.android.phone&hl=en 获得评论。

我正在使用 php (cURL) 方法,但我不断收到错误消息 --- Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential.

以下是我到目前为止所做/尝试过的步骤。

Google Developer Console 中创建了一个Api KEYOAuth 2.0 Client IDService Account

也启用了Google Play Android Developer APIGoogle Play Custom App Publishing API

在我的浏览器https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/androidpublisher&response_type=code&redirect_uri=REDIRECT-URI&client_id=CLIENT-ID

它给了我code 作为响应,然后能够得到access_token,我正在使用下面的 PHP cURL 代码,它也可以正常工作。

<?php 
    $client_id = 'CLIENT-ID';
    $redirect_uri = 'REDIRECT-URL';
    $client_secret = 'CLIENT-SECRET';
    $code = 'CODE';
    $ch = curl_init();    
    curl_setopt($ch, CURLOPT_URL, "https://accounts.google.com/o/oauth2/token");    
    curl_setopt($ch, CURLOPT_POST, TRUE);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_POSTFIELDS, array(
    'code' => $code,
    'client_id' => $client_id,
    'client_secret' => $client_secret,
    'redirect_uri' => $redirect_uri,
    'grant_type' => 'authorization_code'
    ));

    $data = curl_exec($ch);    
    var_dump($data);
exit;

作为回应,我成功获得了access_token

现在我正尝试在浏览器https://www.googleapis.com/androidpublisher/v3/applications/com.rosterelf.android.phone/reviews?access_token=ACCESS-TOKEN 中直接访问此页面,但它一直在说我...

请求具有无效的身份验证凭据。预期的 OAuth 2 访问令牌、登录 cookie 或其他有效的身份验证凭据。见https://developers.google.com/identity/sign-in/web/devconsole-project

-> 我已经检查了角色和权限,并且它在服务帐户中具有 owner 作为权限。

-> 我的REDIRECT-URI 在整个过程中也是同一个 URL。

我尝试使用此 URL 来获取评论 https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.rosterelf.android.phone/reviews/review?access_token=ACCESS-TOKEN,但出现了同样的错误。

有人可以指导我从这里缺少什么,为什么我会来到这里,从这里开始我应该做什么才能获得评论?

任何帮助或建议将不胜感激。

提前致谢。

【问题讨论】:

你考虑过使用谷歌api php客户端库吗?你的问题被标记了,但你没有使用它,而是使用 curl 感谢您的回复@DaImTo。好吧,我找不到任何 php 库,但我相信 cURL 应该可以工作,因为我得到了响应但其中有错误。 Google api php client library 感谢您的链接。但是如何从这个 API 获得评论呢? 另外,如果你能指导我解决我遇到的问题..我当前使用的代码有什么问题吗? 【参考方案1】:

这是该 API 使用官方客户端库的示例。我相信此代码用于服务帐户身份验证。需要正确配置服务帐户,请参阅 using_a_service_account How to create service account credetinals 只需记住启用正确的库即可。

<?php 

require_once 'google-api-php-client-2.2.2\vendor\autoload.php';

putenv('GOOGLE_APPLICATION_CREDENTIALS=client_secret.json');

$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->addScope(Google_Service_AndroidPublisher::ANDROIDPUBLISHER);

$android_publisher = new Google_Service_AndroidPublisher($client);
$response = $android_publisher->reviews->listReviews('appname');   

echo "<pre>";
var_dump($response);

【讨论】:

如何以及从哪里获得client_secret.json 您是否只连接到您自己的数据?还是由您的用户运行以连接到他们的帐户和数据? 我只想从这个 url play.google.com/store/apps/… 获得所有 google play 应用程序评论 您个人拥有该应用程序? 好的 .. 如果可能的话,让我尝试与开发人员联系。将通过更新回复您。感谢您的支持。

以上是关于PHP 中的 Google Play 商店评论 API的主要内容,如果未能解决你的问题,请参考以下文章

Google Play 商店发布问题 [关闭]

从您的应用程序向 Google Play 商店发送费率

增加 App Store 徽章的边距以匹配 Google Play 商店徽章的大小

安装Google play?

在 Play 商店中的何处接受 Google Play 应用签名服务条款?

华为手机如何下载google play商店中的apk