新浪微博SDK使用指南

在使用新浪微博SDK进行开发的时候,发现新浪提供的SDK和腾讯的SDK比起来,明显后者好用很多。我在使用新浪微博SDK的过程中,遇到很多蛋疼的问题,搞得我超级郁闷。比如,使用它的SDK先要弄明白何为jar包模式,何为library模式,还要知道这两者的区别,因为他的官方API文档里说,这两者不能混用。既然不能混用,是不是说挑一个用就行了,但是绝非这么简单,从它的文档中可以看到,你还是需要在某种程度上混用这两种外部类。

按照正常人的思考习惯,既然你提供了SDK,也提供了jar包的。很显然大家会认为SDK是导入到eclipse中做为一个工程来查看的,这样开发者可以方便地查看源码,方便地快速了解SDK的接口和方法。对于提供的jar包,大家理所当然会认为这是用来放到libs文件夹下,然后把路径添加到自己开发的项目中的。而且,添加jar包到libs文件夹下的方式无疑是最佳实践。因为这样就可以在协同开发时方便地共享源代码。要是使用library模式的话,共享代码的时候,不仅要共享自己开发的项目,还要共享被标注为isLibrary的项目,很多项目来回Export和Import,实在很麻烦,也常出错。


但是奇葩的新浪SDK又一次颠覆了程序员的认知。它不认为这两者应该分开,其实他们把jar包与library模式这两种模式给杂糅到了一起,这就是一切烦恼的根源。


更荒唐的是,作为对外提供API接口的平台,竟然在官方文档中用大篇幅来告诉开发者如何导出jar包,如何安装eclipse插件。当然里面说的如何导出jar包,如何安装eclipse插件都是和使用SDK相关的,但是最为一个开放平台,难道就没有能力把这个复杂度消除吗?你提供SDK不就是为了降低技术门槛,让开发者抽身去做更有价值的事情嘛,这倒好,不用研究授权认证了,反倒需要浪费很多时间去研究如何导出jar包,如何安装eclipse插件了。能不能有点服务意识啊!


我用新浪微博SDK时经常出问题,很多问题都是因为未按照官方文档中要求的步骤导致的(但是官方文档的步骤很另类),比如“找不到类所定义的类”异常:

[plain] view plaincopy
  1. 01-28 15:56:47.970: E/AndroidRuntime(20190): java.lang.NoClassDefFoundError: com.weibo.android.R$style  
  2. 01-28 15:56:47.970: E/AndroidRuntime(20190):    at com.weibo.net.WeiboDialog.<init>(WeiboDialog.java:54)  
  3. 01-28 15:56:47.970: E/AndroidRuntime(20190):    at com.weibo.net.Weibo.dialog(Weibo.java:353)  
  4. 01-28 15:56:47.970: E/AndroidRuntime(20190):    at com.weibo.net.Weibo.startDialogAuth(Weibo.java:260)  
  5. 01-28 15:56:47.970: E/AndroidRuntime(20190):    at com.weibo.net.Weibo.authorize(Weibo.java:329)  
  6. 01-28 15:56:47.970: E/AndroidRuntime(20190):    at com.weibo.net.Weibo.authorize(Weibo.java:308)  
  7. 01-28 15:56:47.970: E/AndroidRuntime(20190):    at com.logan.weibo.ui.AuthorizeActivity.onCreate(AuthorizeActivity.java:66)  
网上关于这种异常处理的办法众说纷纭,但是都不好使,因为新浪微博SDK很奇葩,喜欢与众不同。不信的话,看看下面的文档你就信了。


下面的内容摘自新浪微博android平台SDK 文档


时间

文档版本

修订人

备注

2012/7/20

2.0.0

罗棚

初稿

2012/8/02

2.0.0

张晓伟


概述

微博Android平台SDK为第三方微博应用提供了文档易用的微博API调用服务,使第三方客户端无需了解复杂的验证,API调用过程。并可以实现分享到微博的功能,可以分享文字,或者多媒体信息到内置的分享页面,并发送到微博。

主要类说明:

1. Weibo: 微博API 接口类,对外提供weiboapi的调用,包括登录,API调用,微博分享等功能。

2. Oauth2AccessToken:封装了“access_token”,“expires_in”,"refresh_token",并提供了

他们的管理功能

3. Utility:工具类,提供了url encodedecode方法。

4. AsyncWeiboRunner:微博api异步执行类,封装了回调接口,通过创建线程来调用Weibo中的接口方法。

5. HttpManager: 负责与服务器进行通讯的类,封装了GETPOST请求方式,并对外提供图片上传等功能

6. WeiboAPI: 该类及其子类封装了新浪微博对外提供的api接口方法。

7. WeiboException:微博异常封装类,封装了微博的各个异常。

8. SsoHandler:单点登录 认证类,对外提供了sso登录认证的方法。

SDK使用说明

1. 使用weibo.sdk.android(不包含sso功能)

1.1将SDK的工程项目导入到eclipse中。

eclipse中选择File->Import->General->Existing Projects into Workspace。注意:SDK工程的编码格式为UTF-8。如图所示:

图表 2

1.2在需要集成本SDK的工程项目中添加Library。

右键 -> Properties -> Android。设置Library属性,如图所示:

图表 3

1.3 Manifest文件中必须包含以下permission:

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>

<uses-permission android:name="android.permission.WRITE_APN_SETTINGS"></uses-permission>

<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>

1.4 如果想在自建工程里直接使用sdk提供的jar包,可以在eclipse的File->Export->Java->JAR file里打出jar文件,假设名称为oauth20.jar,如下图所示:注意:jar包模式和library模式不能混用,而且这种方式导出来的jar包与library模式下自动生成的jar包是不同的,后者无法将assets目录打进jar文件

图表 4

最后生成的jar的内部结构如下图所示:

图表 5

2. 使用weibo.sdk.android.api

Weibo.sdk.android.api是在weibo.sdk.android的基础上扩展而来,里面提供了一些对新浪微博openapi的封装接口,供用户使用。

2.1因为api sdk是在weibo.sdk.android的基础上开发的,所以使用api sdk之前,需要先导入weibo.sdk.android sdk,步骤详见上节介绍。

2.2 按照上节的步骤,导入api sdk,同样需要将此sdk设置为library

2.3 在Eclipse中,进入新建工程的Properties->Android中,按照下图所示添加library

2.4如果想在自建工程里直接使用sdk提供的jar包,可以在eclipse的File->Export->Java->JAR file里打出jar文件,假设名称为oauth20-api.jar,步骤同1.4。

3. 使用weibo.sdk.android.sso

3.1 因为sso sdk是在weibo.sdk.android的基础上开发的,所以使用ssosdk之前,需要先导入weibo.sdk.android sdk(如果要使用已经封装好的api接口,也可以导入weibo.sdk.android.api),步骤详见上节介绍。

3.2 按照上节的步骤,导入sso sdk,同样需要将此sdk设置为library

3.3 在Eclipse中,进入新建工程的Properties->Android中,按照下图所示添加library

图表 6

添加完成后,查看工程的build path,保证如下图所示,工程里已经分别引入了weibo.sdk.android.sso.jarweibo.sdk.android.jar

图表 7

3.4 如果想在自建工程里直接使用sdk提供的jar包,也可以按照下面的步骤来生成最终需要的jar文件注意:jar包模式和library模式不能混用

1) 安装net.sf.fjep.fatjar_0.0.31.jar

a. 将上面的jar包放入eclipse->plugins目录,并重启eclipse

b. 在工程中点击右键,出现下面的选项 Build Fat jar,说明此插件安装成功

c. 如果没有出现,将 $eclipse_Home\configuration\org.eclipse.update\platform.xml

删除,然后再重启eclipse,执行b步骤检查是否安装成功

d. 如果还未不成功,可以在线安装此插件,插件的地址是:http://kurucz-grafika.de/fatjar,执行b步骤检查是否安装成功

e. 一般经过上面几个步骤,都可以正常安装fatjar,如果还未成功,那只好使用最后一招了,换个其他版本eclipse吧,笔者使用3.7.2,没有任何问题

图表 8

2) 点击Build fat jar,按照向导一步步操作,在添加资源时,应保证将上节(1.4节)生成的oauth20.jar勾选进来,如下图所示,最终生成一个jar,此jar文件内将包含oauth20.jar中的所有内容,文件内部结构如 图表5(如果想使用weibo.sdk.android.api提供的接口,在生成jar文件时,也需要将2.4节中生成的oauth20-api.jar勾选进来)

图表 9

将最终生的jar文件作为lib添加入自建工程中,并且在图标4所示界面中将引入的library 删除。

完成之后就可以正常使用了。

4. SDK使用及修改必须遵守微博开发者协议,以及开源软件协议。

发布了15 篇原创文章 · 获赞 2 · 访问量 3万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览