Android 调用网易微博开放API
今天尝试了一下使用网易微博的开放平台,在Android上开发应用。把用于Java的SDK下回来之后,用起来还有一些问题。不过后来都解决了。
下面把整个过程记录在些,给有需要的朋友。
1、到http://open.t.163.com/wiki/index.php?title=Sdk#Java把SDK下载回来。 我们注意到,SDK包里是源代码。
2、到http://open.t.163.com/apps/new 新建一个应用,以得到咱这个应用的consumerKey和consumerSecret。
3、用Eclipse新建一个Android工程。注意Android版本要选2.X的。把第一步下回来的SDK中src文件夹下的内容放到Android工程的src目录下。
4、配置buildPath,将SDK中lib下的jar包添加到Android工程中。(如何配置buildPath就不详说了吧)
5、完成这些以后,HttpClient类中还是报错,找不到javax.activation.MimetypesFileTypeMap这个。这时,到http://www.jar114.com/ 这个网站去搜索一下javax.activation.MimetypesFileTypeMap是在哪个包里的,然后把包下载回来,再配置buildPath,把下回来的包也添加到工程中,这时就不再报错了。
6、SDK中,程序的入口是example包中的OAuthGetToken类,但咱现在是Android应用,入口在Activity里,所以咱把OAuthGetToken类中Main方法的方法体都拷到咱Android工程里的自己的Activity的OnCreate方法里。
7、上一步拷贝的代码中,咱要把
System.setProperty("tblog4j.oauth.consumerKey",
"");
System.setProperty("tblog4j.oauth.consumerSecret",
"");
这里设上第二步获取到的consumerKey和consumerSecret。
8、在AndroidManifest文件中添加访问互联网的权限设置。
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
9、看起来差不多了吧,运行一下一堆的错误。我找了下原因,发现程序里面用到了Property文件,现在这个文件在src文件夹下,但在Android里,Property文件放在这里它是读不到的。所以把src下的t4j.properties文件放到assets里。这时我们访问的路径也要改。
10、找到t4j包下的Configuration类的81行。
将loadProperties(defaultProperty, Configuration.class.getResourceAsStream("/" + t4jProps));
改成loadProperties(defaultProperty,Configuration.class.getResourceAsStream("/assets/" + t4jProps));
11、这个时候,我们来把调用方法的流程理一理。
第一步,生成一个验证我们应用的URL,容易想到,这个URL里携带了应用的标识信息
第二步,调用浏览器访问这个URL,在页面中,用户设置允许我们的应用访问他的账号。设置以后,163保存了这种允许的状态。
第三步,设置完成后,用户退出浏览器,回到我们的应用,我们的应用再通过调用SDK去163那里获得AccessToken。
第四步,使用AccessToken,我们就可以调用SDK中的任意方法了,譬如验证用户,获取微博列表等。
下面我完成的这个例子的效果是,一进到应用,点击按钮去验证,验证完后,用户退出浏览器,应用显示用户的微博用户名。
上代码:
上图: