博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
新浪微博api使用
阅读量:4286 次
发布时间:2019-05-27

本文共 2053 字,大约阅读时间需要 6 分钟。

 如今社交网络异常活跃,接触到的几乎每个应用都使用有一个功能:分享。分享到各种SNS上,

现今以新浪微博最火,其提供了良好的API接口等文档供开发者使用,正好称此有机会也来接触一下,

说不定那天也能用得上。下面简单记录下初步使用过程中遇到的问题,以便对后来者有点作用。

一授权认证

  在使用新浪微博API前,还是很有必要先了解一下新浪微博授权认证过程如何。

可以参考博文:

二 APP KEY的申请

为了使用新浪微博开放平台提供的API,你需要先注册一个应用,获得一个专属的App Key和App Secret。

Key跟Secret的使用方式跟其他一些协议中的公钥私钥的方案相类似,你可以使用你所熟悉的编程语言将key和secret结合,

为你发出的每个请求添加签名,以此来向新浪微博开放平台表明自己身份的合法性。

注册方法:登录新浪微博,点击应用 找到:

  

    

然后就可以创建应用,填写信息,不需要审核通过就可以得到App Key。

三下载SDK

到微博开放平台下载就可以了,我的是Android-SDK版本。weibo4android-1.2.1.zip。

里面已经提供了很多example,可以参考。直接导入到Eclipse里面也是可以使用的。

需要配置一下版本,将Weibo类中的

public class Weibo {

public static String CONSUMER_KEY = ""; //填入申请到的

public static String CONSUMER_SECRET = "";//填入申请到的

}

然后就可以测试运行。

四 API使用

其中提供了很多example,这样我们就可以来熟悉微博API的使用。

在开发中我们可能需要将其集成到我们的APP中,这其中会有一些问题,下面看看我遇到的以及解决方法。在android4.0中:

1 E/AndroidRuntime(3595): java.lang.RuntimeException: Unable to start activity ComponentInf{com.weibo/com.weibo.ShareActivity}:android.os.NetworkOnMainThreadException.

NetworkOnMainThreadException:在主线程UI线程中访问网络 异常。访问网络是一件耗时的操作,可能被禁止这样使用。

解决方法:开辟新的线程中访问网络。(最好是这样

或者使用android提供的类StrictMode自动进行优化。

具体使用方法在在程序入口如onCreate中加入:

StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()

.detectDiskReads()

.detectDiskWrites()

.detectNetwork()

.penaltyLog()

.build());

StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()

.detectLeakedSqlLiteObjects()

.detectLeakedClosableObjects()

.penaltyLog()

.penaltyDeath()

.build());

  StrictMode用意具体可参考

2 E/AndroidRuntime(6195): java.lang.NoClassDefFoundError: org.apache.commons.httpclient.methods.PostMethod

分享图片的时候会遇上,找不到此类定义,可是明明已经导入相应的SDK中提供的包了。

将包都放入到lib文件下,在Eclipse中右键点击lib文件夹,选Bulid path –> Use as source folder。

3 weibo.getOAuthRequestToken(callback_url);中callback_url问题

设置不正确可能在登录之后无法返回到相应的Activity中;

这里的设置和AndroidManifest.xml中对activity的filter对应:

<data

android:host="ShareActivity"

android:scheme="share" />

然后requestToken =weibo.getOAuthRequestToken("share://ShareActivity"); 要对应。

才能返回到ShareActivity中;

scheme是工程名,必须得小写。host是要返回的activity。

五发布微博例子

  顺便附上一个来自网络上,能够分享图片的例子。我把它移到我这里工程上来的完整程序。

  来自文章:

  程序例子下载:

转载地址:http://qvxgi.baihongyu.com/

你可能感兴趣的文章
android之挂断电话
查看>>
android之listview分页加载上拉刷新、更新listview
查看>>
android之获取手机安装包里面的信息、获取目录空间的大小
查看>>
android之listView显示不同的item
查看>>
iOS之代码块的创建
查看>>
iOS之ffmpeg开发音视频编解码概要、SDL
查看>>
iOS/swift之流程控制
查看>>
iOS/swift之定时器
查看>>
iOS/swift之后台执行任务
查看>>
iOS/swift之view获取当前的控制器
查看>>
iOS/swift之进入前后台通知
查看>>
iOS/swift之判断机型和手机尺寸相关
查看>>
iOS/swift之view的常用属性
查看>>
iOS/swift之加密
查看>>
iOS/swift之常用正则
查看>>
iOS/swift之UIDatePickView
查看>>
iOS/swift之path、url、data 、String与Data之间的转换、data和字典之间转换、对象序列化反序列化
查看>>
iOS/swift之UIPickView
查看>>
iOS/swift之截屏
查看>>
iOS/swift之获取系统所有相册和照片录像、封装相册多选
查看>>