Java发送新浪微博的问题

时间:2021-07-17 10:32:24

一,背景

2017-06-26微博公告替换了一些接口,导致以前的:

statuses/repost 转发一条微博

statuses/update 发布一条微博

statuses/upload 上传图片并发布一条微博

statuses/upload_url_text 发布一条微博同时指定上传的图片

statuses/destroy 删除微博

无法使用。公司项目的微博分享也不能使用了。

全部替换成新的接口:

statuses/share 第三方分享链接到微博

更改接口后一直以下报错:文本找不到域!

error:text not find domain! error_code:10017/2/statuses/share.json

Java发送新浪微博的问题

弄了好几天才发现问题出在授权key的地方。

二,解决问题

下载了最新的新浪微博Java的SDK

下载后,编辑Config.properties配置文件:

Java发送新浪微博的问题

client_ID :填写应用的appkey

client_SERCRET :填写应用的app secret

redirect_URI : 填写应用的回调地址 ,我这里使用的http://www.baidu.com

这三个参数都必须和应用上的一致,否则会出问题。

右键Run As ----> Java Application运行examples包下的weibo4j.examples.oauth2里的Oauth4Code.java,

Java发送新浪微博的问题

会自动打开默认浏览器,进入应用授权界面。

Java发送新浪微博的问题

授权成功后,将会跳转到回调地址http://www.baidu.com

Java发送新浪微博的问题

地址栏中显示的是http://www.baidu.com/?code=的值复制出来。 填入控制台,回车就能获得2.0的授权码了。

Java发送新浪微博的问题

accessToken就是我们想要的2.0的授权码。

测试代码:

注意:text中的文本中的域必须要加"http://"前缀,否则报错:error:text not find domain! error_code:10017/2/statuses/share.json

Java发送新浪微博的问题

右键Run As ----> Java Application运行SinaTest,出现下图微博发送成功!

Java发送新浪微博的问题

发送成功:

Java发送新浪微博的问题