从服务器端的Google Play游戏服务中获取分数

时间:2014-12-25 23:32:56

标签: php oauth-2.0 google-api google-api-php-client

我正在尝试使用Google API PHP客户端从网络服务器加载GPGS的一些分数。

以下是我的工作方式:

1 /设置OAUTH客户端

我使用服务帐户在Google API控制台上创建了OAuth客户端,根据以下文档:https://developers.google.com/accounts/docs/OAuth2ServiceAccount

它为我提供了证书+电子邮件地址+ client_id。

2 /编写PHP代码

这是我的代码:

 $client = new Google_Client();
 $client->setApplicationName("");
 $client->setAssertionCredentials(
      new Google_Auth_AssertionCredentials(
           "something@developer.gserviceaccount.com", // email provided by console
           array('https://www.googleapis.com/auth/games'), // scope
           file_get_contents("../certificates/certificate.p12")  // keyfile i downloaded
      )
 );
 $service = new Google_Service_Games($client);
 $service->scores->listScores("myLeaderboardId", "PUBLIC", "ALL_TIME");

3 /第一结果

关于这个片段的第一个奇怪的事情是API使用此消息向我抛出了HTTP状态401的错误:

  

请求缺少必需的范围: plus.login

根据官方文档(https://developers.google.com/games/services/web/api/scores/list),此请求所需的范围仅为游戏

4 / HITTING A WALL

将此范围添加到我的请求中确实不是什么大问题,但在此之后,API又以401 HTTP状态回复了我:

  

用户尚未完成注册

我完全理解,因为我使用的是服务帐户的凭据,而不是真实的帐户。

问题

我做错了什么?我是否真的可以通过从服务器调用Google API来加载排行榜?

先谢谢你的帮助,

此致

0 个答案:

没有答案