在Google API v2中,为什么会出现错误“用于调用Google Play Developer API的项目ID尚未链接”?

时间:2015-02-27 16:56:36

标签: php google-api google-play google-api-php-client

当我使用Google API v2时,为了获得inapp listing,我在进行API调用时遇到以下错误:

{
 "error": {
  "errors": [
   {
    "domain": "androidpublisher",
    "reason": "projectNotLinked",
    "message": "The project id used to call the Google Play Developer API has not been linked in the Google Play Developer Console."
   }
  ],
  "code": 403,
  "message": "The project id used to call the Google Play Developer API has not been linked in the Google Play Developer Console."
 }
}

然后我研究了这个错误,最后在this页面,this页面以及this页面上看到了这些建议。我跟着并仔细检查了项目链接的方式,但没有帮助。

这就是我做的......

在Google Developer Console中:

  1. 使用现有项目。
  2. 去了API& auth>的API。
  3. 确保“Google Play Android Developer API”已开启。
  4. 使用我的现有凭据用于CLIENT ID,CLIENT SECRET和REDIRECT URIS。应用程序类型是“本机应用程序”。
  5. 也创建了一个API KEY,但没有使用它。
  6. 在Google Play开发者控制台中:

    1. 去设置> API访问。
    2. 在LINKED PROJECT下,我确保链接了Google Developer Console上的上述项目。
    3. 在我的PHP脚本中:

      <?php
      
      require_once('/var/www/html/common/include.php');
      require_once realpath(dirname(__FILE__) . '/lib/Google/autoload.php');
      
      $refreshToken = '1/sometoken';
      $packageName = 'com.somepackage';
      
      $client_id = GOOGLE_CLIENT_ID;
      $client_secret = GOOGLE_CLIENT_SECRET;
      $redirect_uri = 'http://localhost';
      
      $client = new Google_Client();
      $client->setClientId($client_id);
      $client->setClientSecret($client_secret);
      $client->setRedirectUri($redirect_uri);
      $client->setAccessType('offline');
      $client->setApprovalPrompt('force');
      $client->setScopes(['https://www.googleapis.com/auth/androidpublisher']);
      $client->refreshToken($refreshToken);
      
      $service = new Google_Service_AndroidPublisher($client);
      $response = $service->inappproducts->listInappproducts($packageName);
      
      var_dump($service);
      

      导致上述错误。

      使用刷新令牌解决此错误的任何其他建议?

1 个答案:

答案 0 :(得分:3)

嘿,我遇到了与你类似的问题,我发现问题是我是在验证用户没有正确的权限。

首先进入您的Google Play控制台,转到设置&gt; API访问。确保您有一个链接的#Go; Google Play Android Developer&#34; (这听起来像你做的,我也做过)。

接下来进入设置&gt;用户帐户和权限,确保用户具有查看订阅的正确权限或您需要的任何内容。出于测试目的,只需给予它所有权利。

然后确保通过Oauth验证此用户(即从列表中选择他们的电子邮件),然后获取典型的刷新/访问令牌

现在对我来说真的很痛苦,但它仍然需要一天的挫折。我希望这能解决你的问题:)