获得用户对服务帐户的同意

时间:2018-11-02 18:36:36

标签: php google-api google-api-php-client google-my-business-api

我正在尝试通过Google我的商家API从我的商家中获取信息,但是当我尝试通过他们的google-api-php-client获取信息时,我只会收到以下消息:

Fatal error:  Uncaught Google_Service_Exception: {
  "error": "unauthorized_client",
  "error_description": "Client is unauthorized to retrieve access tokens using this method."
}

我遵循了他们的文档(herehere),但是没有运气。

代码:

$client = new Google_Client();
$client->setAuthConfig($ga_keyfile);
$client->addScope("https://www.googleapis.com/auth/plus.business.manage");
$client->setClientId($clientID);
$client->setApplicationName($appname);
$client->setAccessType('offline'); // offline access
$client->setSubject("*********@gmail.com");
$client->setIncludeGrantedScopes(true);
$mybusiness = new Google_Service_MyBusiness($client);
echo "<pre>";
print_r($mybusiness->accounts->listAccounts()->getAccounts());
echo "</pre>";

我也注意到只有在我$client->setSubject("*********@gmail.com");

如果我不进行说明,它将发出请求,但是没有可用的营业地点。

我不确定是否是由于缺少用户同意而导致的100%,但是在谷歌搜索后看起来像这样。 我没有找到说明如何获得用户同意的文档。 他们中的大多数人解释了这是什么,但没有解释如何做。

作为第二项测试,我尝试使用$auth_url = $client->createAuthUrl();创建一个身份验证url并将重定向uri $client->setRedirectUri('http://' . $_SERVER['HTTP_HOST'] . '/oauth2callback.php');设置(也尝试将其设置为空:”) 但是然后我得到一个redirect_uri_mismatch错误。这应该是正确的,因为您无法在服务帐户(或与此相关的服务帐户的OAuth2客户端)中设置重定向uri

那我该如何解决这个问题?

0 个答案:

没有答案