2013-02-22 84 views
15

我得到GoogleAuthException: Unknown error,同時做GoogleAuthUtil.getTokenGoogle Api和android Oauth INVALID_AUDIENCE錯誤

就異常之前我看到

GLSUser: GLS error: INVALID_AUDIENCE <email> audience:server:client_id:xxx.apps.googleusercontent.com 

我已經設置從我的釋放鍵,包名的SHA1,對谷歌的API項目。 (順便說一下,它正在成功應用於GCM。)

回答

16

看起來像應該工作;這裏是我的應用程序的scope-in​​it代碼,它可以工作。

private static final String SCOPE = "audience:server:client_id:" + SERVER_CLIENT_ID; 

所以它聞起來像我的客戶端ID有問題。請記住,

  1. 你必須有兩個客戶端ID
  2. 一個項目是一個將Android應用,與SHA &包&等
  3. 另一種是在服務器端,你是打算送令牌關閉以

這是一個從#3的客戶端的ID去後...:CLIENT_ID:

+0

謝謝,就是這樣。 – Alok 2013-02-23 03:27:14

+3

@Alok ....我遇到了同樣的問題。我在端點api中的受衆中使用web client_id,也在android受衆範圍中使用。仍然看到相同的認證錯誤。你是如何生成web client_id的?我去了Google APIs控制檯,爲redirect uri&javascript origin的空白Web應用程序生成了一個Client Id。那是對的嗎? – plspl 2013-04-05 23:49:02

+0

這樣做的另一個常見原因是註冊調試證書散列並使用發佈進行測試(反之亦然)。 – 2013-05-19 15:45:48

0

正巧一個在我的團隊雖然它在我的設備上運行正常。 原來是因爲我們的eclipse安裝上有一個不同的debug.keystore

爲了解決這個問題,我們已經複製了公司的debug.keystore文件~/.android/ (這是在Mac上的目錄,它是在Linux和Windows不同)

0

通過刪除您發現您的debug.keystore解決這個問題。 android文件夾,然後再次運行新項目以生成新的debug.keystore文件。 然後最後爲Google API生成一個新的SHA-1簽名證書。

0

此外,您還必須在Google API控制檯中設置oAuth授權屏幕。

這就是爲什麼我得到這個錯誤

0

在記錄我的問題的興趣,

我有同樣的INVALID_AUDIENCE錯誤從谷歌簽入通過AWS移動樞紐產生的示例應用程序回來。有幾件事要檢查,

像蒂姆佈雷注意上面,使您的客戶端ID爲有效的網絡客戶端ID(不是Android)。但也有一個Android客戶端ID,它具有正確的SHA-1指紋(在您單擊Run時用於簽署調試版本的debug.keystore中找到)和包名稱。

注意:AndroidManifest.xml中列出的軟件包名稱並不總是實際的軟件包名稱。要找到最終的軟件包名稱,請轉到build.gradle文件並查看applicationId字段。確保在配置Android客戶端ID時在Developers Console中輸入正確的軟件包名稱。