我正在开发一款使用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);' –