2012-03-28 231 views
1

我通過使用服務帳戶認證了一個簡單的獲取 對Core Reporting API的請求。但反應總是:谷歌服務器到服務器認證的請求返回被禁止403

{"error":{"errors": [{"message":"Forbidden"}],"code":403,"message":"Forbidden"}} 

當我通過身份驗證「客戶端ID爲Web應用程序 」相同的API請求(OAuth 2.0用戶遊樂場)我得到沒有問題的API響應。所以這個問題不在api查詢中。

這是我做過什麼:

  1. 我在同一個帳戶至極的谷歌API控制檯登錄有 訪問Analytics帳戶

  2. 有我創建中的一個新的服務帳戶項目有權訪問 分析api

  3. 與最新的谷歌api-php客戶端我認證的要求 到分析cs api通過使用這個服務帳戶。身份驗證 似乎正常工作,因爲請求標頭包含authorization: Bearer {access_token}。但我得到總是403

這裏是IAM做的短代碼片段:

$client = new apiClient(); 
$client->setAssertionCredentials(new apiAssertionCredentials( 
    '{my_service_account_email}', 
    array('https://www.googleapis.com/auth/analytics.readonly'), 
    '{my_service_account_certificate}' 
)); 
$request = $client->getIo()->authenticatedRequest(new apiHttpRequest('https://www.googleapis.com/analytics/v3/data/ga?{my_query}')); 

什麼IAM做錯了什麼?

回答