茶歇驿站 成长之路由我相伴。

第三方登录使用过程中的总结

2013-08-24


SSO授权优势:不需要重复输入新浪微博用户名、密码,只需要一步操作,直接点击授权按钮即可完成授权,增强了操作简便性及帐号安全性。


1. 新浪微博

1、整合准备

2、整合分析

  • 根据官方使用手册将需要应用信息整合到自己的应用代码中。

    • 后台接口需要支持第三方登录的识别和支持,目前接口是parterLogin

3、注意事项

  • SSO登录方式必须要在onActivityResult中配置。
  • com.weibo.sdk.android.WeiboException: {"error":"User does not exists!","error_code":20003,"request":

在新浪微博授权后调用获取用户信息的接口时候会报以下错误(用户不存在):

com.weibo.sdk.android.WeiboException: {"error":"User does not exists!","error_code":20003,"request":"/2/users/show.json"}

如果你查看新浪源码的就会发现,其实这个错误是一个很幼稚的问题,为什么这么说呢,我们先看下源码:如果传入的是字符串那么默认调用下面这个接口,所以会报 User does not exists! 如果传入的是long类型,那么调用的是上面那个接口,根据uid查询用户信息。PS:切勿将uid作为字符串进行调用接口!用另外一个微博帐号(就是区别于注册应用的这个帐号)时,会出现一些错误。错误信息:

{"error":"applications over the unaudited use restrictions!","error_code":21321,"request":"/2/statuses/update.json"}

weibo4j.model.WeiboException: 403:The request is understood, but it has been refused.  An accompanying error message will explain why.
error:applications over the unaudited use restrictions! error_code:21321/2/statuses/update.json
at weibo4j.http.HttpClient.httpRequest(HttpClient.java:414)
at weibo4j.http.HttpClient.httpRequest(HttpClient.java:372)
at weibo4j.http.HttpClient.post(HttpClient.java:301)
at weibo4j.http.HttpClient.post(HttpClient.java:286)
at weibo4j.Timeline.UpdateStatus(Timeline.java:708)
at weibo4j.examples.timeline.UpdateStatus.main(UpdateStatus.java:18) 这个的解决办法:还是在我的应用那里,点击”应用信息“,”高级信息“,看到有添加UID,这个时候,你把想要发布微博的帐号的UID添加进去,就OK。

2. 腾讯QQ

1、整合准备

2、整合分析

  • 根据官方使用手册将需要应用信息整合到自己的应用代码中。

    • 后台接口需要支持第三方登录的识别和支持,目前接口是parterLogin

3、注意事项

  • 特别注意,必须将AndroidManifest.xml中配置的activity里面的腾讯QQ互联的activity增加android:launchMode="singleTask"
  • 还有QQ互联的activity的finish方式跟新浪的有所不同,不能在UI主线程中进行网络请求

下一篇 个人开发项目

Comments

Content