我正在尝试将几个 Google API 调用集成到自定义 Drupal 8 模块中。
在尝试做任何其他事情之前,我基本上是在尝试首先让我的自定义类通过 OAuth 从 Google 获取访问令牌。我通过在一个地方使用一个类函数来做到这一点。功能如下:
public function testTokenRequest(): void
{
// Setup Google Client Config within context of initialized class
$this->googleClient->setClientId($this->googleClientID);
$this->googleClient->setClientSecret($this->googleClientSecret);
$this->googleClient->setDeveloperKey($this->googleApiKey);
// Add Google MyBusiness scope
$this->googleClient->setScopes(array('https://www.googleapis.com/auth/plus.business.manage'));
try {
$accessToken = $this->googleClient->getAccessToken(); // null returned where breakpoint hit
$this->googleAccessToken = $accessToken; // Put xdebug breakpoint here
} catch (Exception $exception) {
echo $exception->getMessage();
}
}
目前我得到的只是$accessToken = $this->googleClient->getAccessToken();
调用返回的空值。
不确定我哪里出错了,可能是 AddScopes 调用,因为 apiclient 的供应商文档的做法略有不同,即$client->addScope(Google_Service_Plus::PLUS_ME);
但我找不到用于 MyBusinessAPI 范围的正确类,因此使用了 OAuth 操场字符串https://www.googleapis.com/auth/plus.business.manage
当我使用它时,我得到了一个返回的 OAuth Playground AccessToken,但最终却出现了 Permission Denied 错误,即使我在凭据下将 GMB API 添加到了我的白名单中。