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

相關問題