1

我正在尝试通过 Google My Business 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."
}

我已经按照他们的文档(这里这里)但是没有运气。

代码:

$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% 确定这是否是因为缺少用户同意,但在谷歌搜索后看起来像这样。我没有找到解释如何获得用户同意的文档。他们中的大多数人解释它是什么,而不是如何去做。

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

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

4

0 回答 0