Search Console API returns 站点列表的数组为空,即使我的 Search Console 中有多个站点

Search Console API returns Empty array for site list even though I have several sites in my search console

Search Console API returns 尽管我的 Search Console 中有多个网站,但网站列表的数组为空。

我的搜索控制台中有多个站点。当我使用 api Explorer 时,它们在数组中返回。使用 PHP 或 Python 客户端库后,使用我的服务帐户凭据得到空结果。这似乎是一个权限问题,但我使用的服务帐户分配了所有者角色权限,所以这没有意义。如有任何帮助,我们将不胜感激!

这是我的代码:

$client = new Google_Client();

$credentials_file = 'path/to/file.json';

$client->setAuthConfig($credentials_file);

$client->setScopes(['https://www.googleapis.com/auth/webmasters']);
$service = new Google_Service_Webmasters($client);

var_dump($service->sites->listSites()->getSiteEntry());

我的结果:array(0) {} 尽管它在搜索控制台中有多个网站。

Search Console 站点和站点数据被视为用户数据,服务帐户无法访问。您必须创建一个 Oauth 2 接口并将令牌保存到文件中,然后在您的应用程序中使用该令牌。确保应用在令牌过期时刷新令牌:

if ($client->isAccessTokenExpired()) {
        $client->refreshToken($this->token['refresh_token']);
        $token = $client->getAccessToken(); // save this to a file
    }