2013-04-23 42 views
12

我有獲得對用戶標識雲端點方法的問題返回null。我在我的android客戶端中使用了oauth2身份驗證,並將憑據傳遞給我的服務。以下內容與我的方法看起來相似(簡化以使其更清楚)。功能User.getUserId()雲終端的API用戶對象不是空

我注意到,issue 8848爲蟒蛇似乎非常相似,這一問題。

java api中的問題也是一樣的問題嗎?該方法

public SuccessCode doSomething(WireFormat wire, User user){ 
    log.info("User id: "+user.getUserId()); 
    log.info("Federated identity: "+user.getFederatedIdentity()); 
    log.info("Email address: "+user.getEmail()); 
} 

將顯示聯合身份和即使在Android客戶端憑證有OAuth2驗證程序執行用戶id爲空。電子郵件地址在日誌中正確顯示。這一切都在部署應用程序btw。

任何人有什麼不對?該問題的任何已知解決方法?我遵循https://developers.google.com/appengine/docs/java/endpoints/consume_android#making-authenticated-calls中建議的方法來設置我的Android客戶端。

回答

5

你是正確的問題8848是同樣的原因。潛在的問題是語言不可知且會影響兩個運行時間。目前,您不應該期望在端點中通過方法參數傳入的User對象中填充了用戶標識字段。

超級最理想的解決辦法是堅持的User對象數據存儲和讀取它。重讀對象將包含用戶ID。

+0

謝謝。我會嘗試我想的解決方法。至少我知道,現在可以等待bug修復。 – user2072160 2013-04-25 10:39:44

+0

看來,這仍然不是固定的。我有一個雲端點後端,每當我調用getUserId時它將返回null。雖然,是否有任何需要使用用戶ID?電子郵件也是獨一無二的,我不認爲用戶可以更改他們的電子郵件地址。 – sthomps 2014-08-11 15:02:20

+0

有任何信心讓這項工作?試圖決定實施這個糟糕的工作,或者使用電子郵件作爲關鍵。 – Patrick 2015-03-10 02:29:00

-1

我跟在問題中的同一文檔參考,並具有相同的確切問題。

終於得到了端點做與工作的OAuth2如下:

有針對谷歌的更新遊戲,我更新服務;現在版本15(Android SDK)。

終點的文檔進行了更新,你應該讓谷歌加的API爲您的應用,即使你只是使用userinfo.email範圍爲您的應用程序引擎的端點狀態。我通過雲控制檯完成了這項工作。

而且,最後,有一個新的註釋,指出了OAuth2不從仿真器。我證實了這一點。即使指向產品應用程序引擎,我仍然會從Android模擬器中獲得空的用戶錯誤。所以我仍然只能測試真實設備的端點。

我可以證實,我需要所有這三個以上步驟。

+0

您能否提供指向上述陳述的鏈接?我已經開始使用端點開發應用程序,但我從未看到有關啓用Google+ API的任何信息。 – 2014-06-20 18:30:37

+0

此解決方案似乎與問題無關。問題在於後端appengine/cloud端點。你正在描述的是前端android代碼。 – sthomps 2014-08-08 04:29:10