一,背景
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
弄了好几天才发现问题出在授权key的地方。
二,解决问题
下载了最新的新浪微博Java的SDK
下载后,编辑Config.properties配置文件:
client_ID :填写应用的appkey
client_SERCRET :填写应用的app secret
redirect_URI : 填写应用的回调地址 ,我这里使用的http://www.baidu.com
这三个参数都必须和应用上的一致,否则会出问题。
右键Run As ----> Java Application运行examples包下的weibo4j.examples.oauth2里的Oauth4Code.java,
会自动打开默认浏览器,进入应用授权界面。
授权成功后,将会跳转到回调地址http://www.baidu.com
地址栏中显示的是http://www.baidu.com/?code=的值复制出来。 填入控制台,回车就能获得2.0的授权码了。
accessToken就是我们想要的2.0的授权码。
测试代码:
注意:text中的文本中的域必须要加"http://"前缀,否则报错:error:text not find domain! error_code:10017/2/statuses/share.json
右键Run As ----> Java Application运行SinaTest,出现下图微博发送成功!
发送成功: