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 KEY
、OAuth 2.0 Client ID
和Service Account
。
也启用了
Google Play Android Developer API
和Google 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的主要内容,如果未能解决你的问题,请参考以下文章
增加 App Store 徽章的边距以匹配 Google Play 商店徽章的大小