本文是这两天学习github的oauth登陆方式的小结。
github可以像QQ、新浪一样提供给安卓应用三方登录方式。我这两天在github上找到了一个android-github-oauth的项目,可以用来学习oauth协议。
项目地址:https://github.com/thiagolocatelli/android-github-oauth
下面说下具体流程:
1.注册github账号
2.点击右上角的头像--->Settings--->OAuth application--->Developer applications--->Register new application
3.点击Register new application后出现如下界面,填写Application name(应用名)、Homepage URL(主页URL)和Authorization callback URL(授权的回调URL),根据自己的需要填写,我是随便写的。后面我们所需要的code会附在Authorization callback URL的地址后面。
4.填写完之后,点击Register application,我的OAuth应用申请就完成了。如下图所示,可以看到自己的应用获得了Client ID和Client Secret,这两个和Authorization callback URL是我们后面所需要的。
5.然后去github下载Oauth登陆Demo,地址:https://github.com/thiagolocatelli/android-github-oauth
这个是别人的项目,我借来分享下。
6.下载好了之后,导入到eclipse中。打开eclipse,file--->Import--->Android--->Existing Android Code Into Workspace-->Next--->Browse...--->选择我们下载后的解压目录--->确定--->Finish。如下图所示:
7.项目成功导入eclipse后,打开MainActivity--->src--->ApplicationData.java,将自己应用的Client ID、Client Secret和Authorization callback URL填入对应的字段中。启动应用,就可以进行Oauth登陆了。
8.但注意,登陆成功后可能会显示Connected as null,是因为没有成功获取到用户信息,log提升为:
04-27 04:10:04.319: W/System.err(27121): java.io.FileNotFoundException: https://api.github.com/user?access_token=9a18514eb14f9ce6537887595a17345b0f59c48a&scope=
解决办法是注释掉Main-->src--->GithubApp.java的第128行语句:urlConnection.setDoOutput(true);