7

我要访问我的帐户和评论相关联的位置,对于我使用Google我的业务API,我可以访问它(它的工作对oAuthplayground)。访问谷歌我的业务API没有登录(使用服务帐户)

现在我要访问的谷歌我的业务API,无需登录到我的帐户,对于我试图使它与服务帐户工作。但到目前为止还没有运气,请咨询如何继续。我已经启用了摹套件服务帐户,我也想给访问该服务帐户的电子邮件(ID)为我的企业管理,但它停留在邀请状态,因为没有办法真正接受邀请。

当我尝试使用我的帐户受到发送请求。

$client = new Google_Client(); 
$client->addScope('https://www.googleapis.com/auth/plus.business.manage'); 
$client->setAuthConfig(dirname(__FILE__) . '/Xyz Review API-service account.json'); 
$client->setSubject('xyz*****[email protected]'); 
$business_service_class = new Google_Service_Mybusiness($client); 
$result_accounts = $business_service_class->accounts->listAccounts(); 
echo json_encode($result_accounts); 
exit; 

响应: {的 “nextPageToken”:空}

如果我使用谷歌的服务帐户ID为电子邮件ID的主题,然后我得到以下答复。

$client->setSubject('[email protected]'); 

响应: 错误500 { “错误”: “unauthorized_client”, “ERROR_DESCRIPTION”: “在请求未授权客户端或范围的” }

如果我这样做完全错了,那么请建议如何处理这个问题。谢谢。

+0

我不确定API是否可以与服务帐户一起工作,但是,据我所知,按照您的方式使用服务帐户,您需要启用域宽委派。我发现“Google我的商家”显示为包含在G Suite帐户的“其他Google服务”中的服务。您是否尝试过按照以下步骤https://developers.google.com/api-client-library/php/auth/service-accounts?也许你只需要启用DWD。让我知道它是否有效。 – Morfinismo

+0

@Morfinismo我确实在服务帐户中启用了DWD,然后我只尝试了上面的api调用。 – Hmmm

+0

@Hmmm你有没有得到我的业务API与服务帐户?如果是的话如何? – Zath

回答

1

我遇到了使用google apis进行内部服务身份验证的问题。 基本上存在二方法:

  1. 创建页面,接受您的应用程序来访问谷歌帐户
  2. 创建一个证书来验证与“隐”的批准

的应用程序,我说我” m使用google api做内部项目,所以第一个选项是没有问题的(服务不公开)。 转到https://console.cloud.google.com并创建一个新项目,然后转到“api manager”,然后“凭证”,然后创建一个“服务凭证”。

如果按照你有扩展名为.p12证书所有这些步骤,这是你的关键,访问谷歌的API(记住你必须启用密钥来访问您需要的特定谷歌API)。

我贴,我使用谷歌日历从我的项目中提取的例子,而认证是为每个服务是相同的。

$client_email = '[email protected]'; 
    $private_key = file_get_contents(__DIR__ . '/../Resources/config/xxxx.p12'); 
    $scopes = array('https://www.googleapis.com/auth/calendar'); 
    $credentials = new \Google_Auth_AssertionCredentials(
     $client_email, 
     $scopes, 
     $private_key 
    ); 

    $this->client = new \Google_Client(); 
    $this->client->setAssertionCredentials($credentials); 
+0

Google_Auth_AssertionCredentials从google-api -php版本2中删除。(您可以在这里查看 - https://github.com/google/google-api-php-client/blob/master/UPGRADING.md)我已经下载了json而不是.p12和步骤是相同的​​仍然有点不工作。 – Hmmm

相关问题