网站调用新浪微博内容(api发新微博网上现有教程中的发送微博接口(updateStatus),)
优采云 发布时间: 2021-08-28 15:13网站调用新浪微博内容(api发新微博网上现有教程中的发送微博接口(updateStatus),)
最近有一个项目需要调用微博API来发布新的微博。在网上找了很多相关的教程,遇到了很多坑。后来发邮件给官方发现微博官方早在2017年3月就调整了相关接口,取消了现有在线教程中的微博发送接口(updateStatus),导致调用该接口导致权限不足再次。 ,当时折腾了半天。特此发个新文章,希望大家不要掉坑。
首先登录开放平台创建应用
首先,您需要到微博开放平台申请开发者账号创建新应用。您可以直接使用您的微博帐户登录。登录后点击微连接选择其他,根据需要选择新建应用(客户端、网页应用和浏览器插件)。
二、应用相关设置
首先在应用信息中编辑应用的基本信息,包括应用介绍的目的。一定要填写安全域名,自己测试的时候随便填写即可。申请企业时需填写企业相关域名。
您还需要在应用高级信息中设置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年。因此,开发者在调用时需要确定授权码的有效期,到期后应引导用户重新授权。
五、api应用的微博
examples包下都是官方微博API实例,之前的微博发送接口在weibo4j.examples.timeline下。其中UpdateStatus.java和Upload.java是发送微博文本,另一个是发送带图片的微博实例。打开之后发现发送的微博都是调用weibo4j.Timeline.java这个类。
不过,微博官方已经取消了updateStatus等相关的微博发送接口,这些接口已经不能再调用了,但是因为java SDK是2014版本,这些方法还是存在的。后续替换之前的updateStatus接口是status/share(第三方分享链接到微博)
我们使用这个接口发送微博。由于java sdk是2014版本,这个版本没有这个接口方法,所以我们需要根据他的调用方法来写一个新的接口。因为接口只有两个必填参数,一个微博文本和授权码,类似于updateStatus。所以我们可以打开weibo4j.Timeline.java找到updateStatus方法,复制一份,改方法名,替换json。这样发微博不带图的方法就完成了。
public Status updateStatus(String status) 抛出 WeiboException {
返回新状态(client.post(WeiboConfig.getValue("baseURL")
+ "statuses/update.json",
new PostParameter[] {new PostParameter("status", status) },
access_token));
}
/**