这个问题使我转弯-我已按照此页面上的说明创建了一个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
)
这是我的不得已。我有用于域范围委派的帐户设置。
有帮助吗?
乔恩
答案 0 :(得分:0)
未经授权
意味着您要进行身份验证的帐户无权执行您尝试执行的操作。
服务帐户
您需要记住的是,服务帐户不是您。也不是在开发者控制台上创建它的帐户。服务帐户是虚拟用户,具有其在驱动器帐户日历帐户,您可以与Merchant Account
服务帐户授权
确保已遵循Service accounts来设置服务帐户访问权限。
在商家帐户中添加一个新用户,获取服务帐户的电子邮件地址并添加。
- 将新服务帐户作为用户添加到您的Merchant Center帐户。如果您是第三方开发人员,则需要让您的客户为您执行此步骤。
- 转到您的Merchant Center帐户。
- 转到Merchant Center帐户设置中的“用户”列表。
- 单击+按钮,然后使用服务帐户ID作为新用户的电子邮件地址。
- 如果您之前没有记下服务帐户ID,请转到“服务帐户”管理页面并选择您创建的项目。
- 指定用户访问权限和电子邮件通知,请注意,使用帐户服务需要管理员访问权限。添加服务帐户用户页面屏幕截图。
- 单击“取消”左侧的蓝色框。您将返回到用户列表,并且应该使用所选的用户角色列出服务帐户ID。
- 对要添加的所有其他服务帐户重复该过程。
- 通过转到“用户”选项卡查看现有服务帐户的用户。这些用户的电子邮件地址以“ gserviceaccount.com”结尾。