这个问题正在推动我的弯道 - 我已根据此页面上的说明创建了一个Google服务帐户
https://developers.google.com/shopping-content/v2/quickstart
我有我的.json文件
我从git下载了google api库并编写了以下PHP
require_once 'vendor/autoload.php';
putenv('GOOGLE_APPLICATION_CREDENTIALS=content-api-key.json');
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->addScope('https://www.googleapis.com/auth/content');
$httpClient = $client->authorize();
$response = $httpClient->get('https://www.googleapis.com/content/v2/********/accounts');
print_r($response);
我替换*****的地方是我的商家ID。
无论我怎样尝试我无法连接并得到以下错误。
GuzzleHttp\Psr7\Response Object
(
[reasonPhrase:GuzzleHttp\Psr7\Response:private] => Unauthorized
[statusCode:GuzzleHttp\Psr7\Response:private] => 401
[headers:GuzzleHttp\Psr7\Response:private] => Array
(
[Vary] => Array
(
[0] => X-Origin
[1] => Origin,Accept-Encoding
)
[WWW-Authenticate] => Array
(
[0] => Bearer realm="https://accounts.google.com/", error=invalid_token
)
这是我的最后一招。我有域范围授权的帐户设置。
有帮助吗?
乔恩
擅自
表示您正在通过身份验证的帐户无权执行您要执行的操作。
服务帐户
您需要记住的是,服务帐户不是您。它也不是在开发者控制台上创建它的帐户。服务帐户是虚拟用户,它拥有其驱动器帐户日历帐户,您可以使用Merchant Account
共享访问权限
服务帐户perauthorization
确保您已按照Service accounts设置您的服务帐户访问权限。
在商家帐户中添加新用户获取服务帐户电子邮件地址并添加该地址。
- 将新服务帐户作为用户添加到Merchant Center帐户。如果您是第三方开发人员,则需要让您的客户为您执行此步骤。
- 转到您的Merchant Center帐户。
- 转到Merchant Center帐户设置中的“用户”列表。
- 单击+按钮,然后使用服务帐户ID作为新用户的电子邮件地址。
- 如果您之前未注意到服务帐户ID,请转到“服务帐户”管理页面,然后选择您创建的项目。
- 指定用户访问和电子邮件通知,请注意使用帐户服务需要管理员访问权限。添加服务帐户用户页面截图。
- 单击“取消”左侧的蓝色框。您将返回到用户列表,并且应列出具有所选用户角色的服务帐户ID。
- 对要添加的所有其他服务帐户重复此过程。
- 通过转到“用户”选项卡查看现有服务帐户用户。这些用户的电子邮件地址以“gserviceaccount.com”结尾。