使用新浪微博开放平台api同步微博内容至自己网站(api发新微博网上现有教程中的发送微博接口(updateStatus),)
优采云 发布时间: 2022-02-23 21:02使用新浪微博开放平台api同步微博内容至自己网站(api发新微博网上现有教程中的发送微博接口(updateStatus),)
最近有个项目需要调用微博api发送一条新的微博。在网上找了很多相关的教程,遇到了很多坑。后来发邮件给官方发现微博官方早在2017年3月就已经调整了相关接口,取消了现有在线教程中发送微博的接口(updateStatus)。结果再次调用该接口会提示权限不足。,折腾了很久。特此发一个新的文章,希望大家不要入坑。
1.登录开放平台创建应用
首先,需要到微博开放平台申请开发者账号,创建新应用。你可以直接用你的微博账号登录。登录后,点击微链接选择其他选项,根据自己的需要新建应用程序(客户端、Web应用程序和浏览器插件)。
2.应用相关设置
首先,在应用信息中编辑应用的基本信息,包括应用介绍和用途,一定要填写安全域名。您可以填写域名进行自己的测试。企业申请,填写企业相关域名。
还需要在应用高级信息中设置OAuth2.0的授权回调页面。这个测试也可以随便填。应用发起用户授权时,重定向的页面地址成功或取消。
三、下载微博java sdk
点击sdk下载地址后会跳转回github页面。页面也有例子提示如何使用,下载即可。下载后,将其导入代码编辑器。最重要的一步:修改config.properties文件中的字段值。值的来源在应用程序信息中。
四、运行实例获取授权码
配置文件修改后,首先打开examples包下的oauth2.0下的OAuth4Code.java文件,直接运行main方法。此时默认浏览器会打开用户授权页面。授权后,浏览器地址中会多出一个code=******。复制代码并粘贴到编辑器的控制台中,然后回车返回授权信息。
复制返回的授权信息中accessToken的值,即授权码。
AccessToken [accessToken=2.00******, expireIn=11255**, refreshToken=,uid=****]有了这个授权码,我们就可以正式运营微博了。
注意:微博api中的所有操作都需要OAuth2.0授权。调用每个方法都需要一个授权码。未经审核的应用授权码仅在一天内有效。通过后有30天,如果得到应用开发者的授权则有5年。因此,开发者在调用时需要判断授权码的有效期,到期后引导用户重新授权。
5.api应用微博
示例包中全是微博官方api实例,之前发送微博的接口在weibo4j.examples.timeline下。UpdateStatus.java 和 Upload.java 一个是发送微博文本,另一个是发送带图片的微博实例。打开后发现调用了 Weibo4j.Timeline.java 类发送微博。
不过微博官方已经取消了updateStatus等相关的发送微博接口,这些接口不能再调用了,但是由于java sdk是2014版本,所以里面还是有这些方法的。然后替换之前的updateStatus界面为statuss/share(第三方分享链接微博)
我们使用这个接口发送一条微博。由于java sdk是2014版本的,这个版本没有这个接口方法,所以我们需要根据他的调用方法写一个新的接口。由于这个接口只有两个必填参数,一个微博文本和一个授权码,类似于updateStatus。所以我们可以打开weibo4j.Timeline.java找到updateStatus方法,复制修改方法名,替换json。至此,无图发微博的方法就完成了。
1
2
公共状态 updateStatus(String status) 抛出 WeiboException {
return new Status(client.post(WeiboConfig.getValue("baseURL")
新 PostParameter[] { new PostParameter("status", status) },
访问令牌));
}
/**