我正在開發一款使用Gigya的Android應用程序,允許用戶使用Facebook和Twitter註冊;與此同時,另一位開發人員在iOS中做同樣的事情。我們想要實現自定義登錄界面。Gigya在手機應用程序中的自定義登錄UI登錄流程
標準方法使用的Gigya自己的UI,並記錄在這裏:下方
http://developers.gigya.com/035_Mobile_SDKs/020_Android#Logging_in_the_User
,它只是表明:
If you wish to implement the graphic design by yourself, use the login method instead.
標準的登錄方法調用一個專用的登錄後回調函數方法和所有後續流程都被描述爲源於此事件。其他登錄方法調用標準的onGSResponse(...)
回調;目前尚不清楚如何使用響應來構建用戶,因此我設置了我的實現以致電socialize.getUserInfo
。試圖調用這兩種方法都會導致很多不尋常的錯誤。
按照該指令的Gigya我開始了
mGSAPI = new GSAPI(GIGYA_APP_KEY, this);
mGSAPI.setAPIDomain("eu1.gigya.com");
在onCreate(...)
(其中GIGYA_APP_KEY
是從我們的控制檯複製的值)。我打電話給setAPIDomain是因爲我們得到了一個無效的數據中心錯誤(儘管有500001代碼,而不是301001代碼!),這已經修復了。
Facebook登錄按照我的預期經歷登錄流程,然後返回錯誤400093(文檔告訴我的是一個無效的API參數,並且具有消息「Missing parameter:client_id」)。
Twitter的登錄回來了206002,「帳戶待驗證」,這似乎是有道理的;然後我打電話
mGSAPI.sendRequest(
"getUserInfo",
null, //parameters
true, //use HTTPS
this, //the callback
null //a context object
);
,這給我的錯誤:
Missing required parameter: No secret or signature were provided. Request could not be verified.
The documentation for socialize.getUserInfo
提出一個UID所需的網絡應用程序,而不是本地的。它沒有提到其他強制性領域。我有點卡住......不應該GSAPI
對象處理驗證,因爲它是用API密鑰初始化的?
您好,感謝,這是非常有益的,但它的不幸非常接近我有什麼了。據我瞭解,我從Facebook獲得的400093錯誤是由於使用單點登錄引起的,但我已將Facebook應用設置爲好像用於SSO,並且我的登錄代碼還包含\t \t \t \t'GSObject params = new GSObject( ); \t \t \t \t params.put(GIGYA_PROVIDER,mProvider); \t \t \t \t如果(mProvider.equals( 「臉譜」)){ \t \t \t \t \t params.put( 「facebookAppId」, 「APPID HERE」); \t \t \t \t} \t \t \t \t mGSAPI.login( \t \t \t \t \t \t參數,可以 \t \t \t \t \t \t mResponseListener, \t \t \t \t \t \t NULL);' –