我有一個(gè)在 App Engine 上運(yùn)行的 Golang 應(yīng)用程序,我想調(diào)用 Analytics API 來處理一些指標(biāo)。在 App Engine 和開發(fā)服務(wù)器上。本頁面介紹了使用服務(wù)帳戶進(jìn)行服務(wù)器到服務(wù)器通信以及使用 OAuth2 獲取訪問令牌的整個(gè)過程。我想避免自己這樣做,所以我找到了Google APIs for Go和以下描述了如何為 App Engine 做到這一點(diǎn)的內(nèi)容。我已將 App Engine 應(yīng)用程序的服務(wù)帳戶電子郵件添加到 Google Analytics 以獲取讀取權(quán)限。我使用Query Explorer 處理過查詢,效果很好。我什至使用了此處的 API 查詢 URI,其中包含正確的訪問令牌并且工作正常。這適用于 cURL 或通過 App Engine 上的 urlfetch 調(diào)用它。我需要的是在 App Engine 上以及在使用開發(fā)服務(wù)器時(shí)自動(dòng)獲取訪問令牌。此處是 URL 縮短器的示例,該示例已修改為使用 Analytics API。 client := http.Client{ Transport: &oauth2.Transport{ Source: google.AppEngineTokenSource(c, analytics.AnalyticsScope), Base: &urlfetch.Transport{Context: c}, }, } svc, err := analytics.New(&client) if err != nil { return nil, err } data, err := svc.Data.Ga.Get("...")開發(fā)服務(wù)器中的響應(yīng)是401 Invalid Credentials, authError。這應(yīng)該像這樣工作還是我錯(cuò)過了什么?更新這樣,問題就解決了一半。當(dāng)我傳入服務(wù)帳戶的電子郵件和.pem文件時(shí),它現(xiàn)在可以正常使用開發(fā)服務(wù)器。但是,App Engine 中的那個(gè)服務(wù)帳戶不適用于上述代碼!googleapi: Error 403: User does not have any Google Analytics account., insufficientPermissions用戶應(yīng)該是我在開發(fā)服務(wù)器上已經(jīng)成功使用過的服務(wù)賬號(hào),所以我不是很明白這個(gè)問題。App Engine 和開發(fā)服務(wù)器上的代碼完全相同。Google Analytics 設(shè)置為具有讀取權(quán)限,我使用只讀 API。它已經(jīng)在開發(fā)服務(wù)器上運(yùn)行,所以應(yīng)該沒問題。問題可能有什么不同?
1 回答

哆啦的時(shí)光機(jī)
TA貢獻(xiàn)1779條經(jīng)驗(yàn) 獲得超6個(gè)贊
可以像這里一樣在啟動(dòng)時(shí)向開發(fā)服務(wù)器提供必要的信息。
$ dev_appserver.py --appidentity_email_address email --appidentity_private_key_path file.pem
對(duì)于 App Engine,您不需要使用此服務(wù)帳戶,而是使用具有應(yīng)用名稱的服務(wù)帳戶:
app_name@appspot.gserviceaccount.com
- 1 回答
- 0 關(guān)注
- 222 瀏覽
添加回答
舉報(bào)
0/150
提交
取消