2014-01-21 39 views
15

在我的Android應用程序中,我試圖讓谷歌令牌在我的谷歌應用引擎後端服務器上進行驗證。但是,我總是得到這樣的例外:com.google.android.gms.auth.GoogleAuthException:getToken(Unknown Source)異常

com.google.android.gms.auth.GoogleAuthException: getToken(Unknown Source) exception 

我的代碼:

private Account mAccount = AccountManager.get(this).getAccountsByType(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE)[0]; 
    private static final String SCOPE = "audience:server:client_id:" +Constants.WED_CLIENT_ID; 
    String token = GoogleAuthUtil.getToken(LoginActivity.this, mAccount.name, SCOPE); 

我曾試圖提出的#1每個解決方案。

回答

15

經過2天的研究,我發現當您在Google Cloud Console中註冊您的Android應用程序 - >您的項目 - > API和身份驗證時,它會要求您輸入指紋以生成ClientID,並且不知何故我的指紋是錯誤的和(我不小心此CMD keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1前加入~$)由於這一點,有人給了我錯了指紋,是的根本原因:

com.google.android.gms.auth.GoogleAuthException: getToken(Unknown Source) exception. 
+0

可以請你幫我解決這個bug http://stackoverflow.com/questions/21445265/google-coordinate-authentification –

+0

可以請在這裏分享代碼嗎? –

+0

@SmitPatel我不明白..你想要指紋的代碼? –

16

幾個小時後,我發現,在你的範圍字符串("audience:server:client_id:...")你必須使用Web應用程序的客戶端ID,而不是Android。

android應用程序的客戶端ID未使用。它只是在這裏將你的android應用程序的包名稱與你的web應用程序鏈接起來。

+2

但我使用WEB客戶端ID ..我不是使用Android ID ..問題是其他東西,我已經回答..謝謝! ! –

+0

啊,那工作的隊友! – iBabur

+0

嗨!同樣的問題,雖然還沒有得到解決方案。在我的範圍內,我使用在Google Developer Console中創建的Web客戶端中的客戶端ID,但它不起作用:( –

2

閱讀一些文章在互聯網上後,我產生的密鑰庫我的SHA1指紋值

密鑰工具-exportcert -alias android_keystore -keystore android_keystore -list -v | openssl sha1

由於我得到這個錯誤。如果您看到憑證屏幕你谷歌開發者控制檯,它說你需要使用

密鑰工具-exportcert -alias android_keystore -keystore android_keystore -list -v

即輸出別管openssl sha1。不知道有什麼區別,但兩個命令給出不同的值。

您將獲得多個指紋,如MD5,SHA1,SHA256等。使用SHA1值。

相關問題