Java怎样调用新浪api发送微博
前言
看到这篇文章的同时,我相信你已经此时浏览了很多同类文章,并且很有能像我一样失败(频繁出现403错误…我承认我有点傻…),可能和你不同的是在摸索此功能的同时我并不是出于工作需求,纯属个人兴趣好奇,直接进入正题,你现在应该非常着急。
获取App Key
申请成为开发者
和其他大多数教程一样,我将和你一起回到原点重新开始,不要急,总会NO error。
直接用用微博账号登录,登录后点击微连接选择其他根据自己需要(客户端,网页应用和浏览器插件)选择创建新的应用,我使用的是网页应用。
填写配置信息
根据上图填写基本配置信息,需要注意的是,安全域名必须填写,可以填写你的域名,也就是第三方分享时候的域名。如果你暂时手里没有可用的域名的话,可以用百度的域名,哈哈。并且要和api调用时候填写的一致,不然会报错误。
成为测试者
点击测试信息,填写你的测试账号昵称,不然的话测试发微博也会失败。
设置授权回调页面
在高级信息里面编辑授权回调页面,这样的话你才能够接收token。同样,不方便的话可以设置为百度页面嘿。
拿到App Key AND App Secret
去基本信息页面记下你的App Key 和 App Secret。后面运行代码实例会用到。
运行实例阶段
下载微博Java SDK
导入eclipse
src里前两个包是我自己建的测试类,不用在意。
example里是集合了新浪微博所有的方法类,可以直接供你修改使用。
填写配置信息
打开图中这个src里面的config.properties文件,需要填写前三个字段,把你的App Key 、 App Secret、回调地址填进去吧。
获取授权码
接下来打开examples包下的oauth2.0下的OAuth4Code.java文件,直接用运行main方法即可。
在微博api中所有的操作都是需要经过OAuth2.0授权的,调用每个方法都需要一个授权码,未经审核的应用授权码只有一天的有效期,通过后有30天的有效期。
拿到授权码
由于我们填写的回调地址是百度,页面会自动跳转到百度,然后细心的你会发现一个百度后会跟一个code。
获取token
拿到code后你还会发现你的eclipse控制台有一个输入框,好,把你的code粘贴进去回车。然后会返回这样一个东东,记住他!!
更改方法
微博官方在2017年已经取消了updateStatus等相关发送微博接口,这些接口都不能再调用了,但是java的sdk由于是2014的版本(怎么不更新!!!!),所以里面还是存在这些方法。随之替代以前updateStatus接口的是statuses/share(第三方分享链接到微博)
因此你需要首先找到updateStatus,然后查看他的源码。
添加分享方法
直接在该方法后面再去添加一条新的方法
/**
* 第三方分享微博
* @param status
* @return
* @throws WeiboException
*/
public Status share(String status) throws WeiboException {
return new Status(client.post(WeiboConfig.getValue("baseURL")
+ "statuses/share.json",
new PostParameter[] { new PostParameter("status", status) },
access_token));
}
发微博
现在返回到你的updateStatus方法里,将main方法改为
public static void main(String[] args) {
String access_token = "**************";
String statuses = "java测试"
+ "https://www.baidu.com";
Timeline tm = new Timeline(access_token);
try {
Status share = tm.share(statuses);
System.out.println(share);
} catch (WeiboException e) {
e.printStackTrace();
}
*号地方改为你得到的token信息。
最后出来这段信息字段,就证明你发送成功啦。赶快去试试吧。