最近有个项目中需要调用微博的api发新微博,网上找了很多相关教程,遇到了很多坑。后来给官方发邮件询问才知道微博官方早在2017年3月份就调整了相关接口,取消了网上现有教程中的发送微博的接口(updateStatus),导致如果再调用此接口都会提示权限不足,当时折腾了好久。特此发一篇新的文章,希望大家不要掉进坑。

一,登录开放平台创建应用

首先需要去微博开放平台申请开发者账号创建新应用。可直接用用微博账号登录,登录后点击微连接选择其他根据自己需要(客户端,网页应用和浏览器插件)选择创建新应用。

二,应用相关设置

首先在应用信息中编辑应用的基本信息包括应用介绍用途什么的,一定要填写安全域名,自己做测试可随便填,企业应用时应填写企业的相关域名。

还需要在应用高级信息中设置OAuth2.0的授权回调页面,这个测试时也可以随便填写,当应用发起用户授权时成功或则取消跳转的页面地址。

三,下载微博java sdk

sdk下载地址点击后回跳到github页面,页面也有实例提示如何使用,下载即可。下载后导入代码编辑器中。最重要的一步:修改config.properties文件中的字段值。值的来源都是应用信息中。

四 ,运行实例获取授权码

配置文件修改完毕后,首先打开examples包下的oauth2.0下的OAuth4Code.java文件,直接用运行main方法即可。此刻默认浏览器会打开用户授权页面,授权后浏览器地址最后会多出一个code=******,复制该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接口的是statuses/share(第三方分享链接到微博)

我们使用该接口发送一条微博,由于java sdk是2014的版本所以该版本中并没有该接口方法,所以我们需要自己按照他的调用方式写一个新的接口。由于该接口只有个两个是必须的参数一个微博文字和授权码,和updateStatus的类似。所以我们可以打开weibo4j.Timeline.java中找到updateStatus的方法,复制一份改掉方法名,将json替换掉即可。这样一个不带图片的微博发送就方法就完成了。

public Status updateStatus(String status) throws WeiboException {

return new Status(client.post(WeiboConfig.getValue("baseURL")

+ "statuses/update.json",

new PostParameter[] { new PostParameter("status", status) },

access_token));

}

/**

* 第三方分享微博

* @param status

* @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));

}

接着我们调用一下该方法,由于该接口是第三方分享到微博,所以内容中必须带一个第三方地址详见该接口参数说明,地址必须是应用设置中的安全域名下的URL。

public static void main(String[] args) {

String access_token = "2.00**********";

String statuses = "该条微博由JAVA程序发送,目的测试其微博相关api,并无实际用途。https://baike.baidu.com/item/Java/85979?fr=aladdin";

Timeline tm = new Timeline(access_token);

try {

Status share = tm.share(statuses);

System.out.println(share);

} catch (WeiboException e) {

e.printStackTrace();

}}

至此微博就发送成功了。

java 微博 屏蔽_最新JAVA调用新浪微博API之发微博(转)相关推荐

  1. Java调用 新浪微博API 接口发微博(包含js微博组件、springMVC新浪登录)详解

    参考自:http://www.myexception.cn/program/1930025.html https://blog.csdn.net/qq_36580777/article/details ...

  2. Java调用 新浪微博API 接口发微博,逐项讲解,绝对清晰

    转载自:http://www.myexception.cn/program/1930025.html Java调用 新浪微博API 接口发微博,逐条讲解,绝对清晰 最近要做个课程设计,使用微博控制树莓 ...

  3. Java调用 新浪微博API 接口发微博,逐条讲解,绝对清晰

    最近要做个课程设计,使用微博控制树莓派,树莓派再控制发光二极管的亮和灭,主要设计分两层,上层是用Java调用新浪微博API来实现对微博旳监听,当我的微博被回复时能够自动读取评论内容,并根据评论的指令内 ...

  4. 最新JAVA调用新浪微博API之发微博(转)

    最近有个项目中需要调用微博的api发新微博,网上找了很多相关教程,遇到了很多坑.后来给官方发邮件询问才知道微博官方早在2017年3月份就调整了相关接口,取消了网上现有教程中的发送微博的接口(updat ...

  5. 最新JAVA调用新浪微博API之发微博

    最近有个项目中需要调用微博的api发新微博,网上找了很多相关教程,遇到了很多坑.后来给官方发邮件询问才知道微博官方早在2017年3月份就调整了相关接口,取消了网上现有教程中的发送微博的接口(updat ...

  6. java微博开发_利用java语言在eclipse下实现在新浪微博开发平台发微博(转)

    0    INFO  [2012-06-08 11:00:53]  code: xxxxxxxxxxxxxxxxxx(code的值) 360  DEBUG [2012-06-08 11:00:53]  ...

  7. 利用java语言在eclipse下实现在新浪微博开发平台发微博(转)

    实现原理: 开发者利用sdk包开发某个应用完成后,该应用与新浪微博服务器连接,通过HTTP数据形式与服务器的API接口交换数据.在开发过程中,亦可实时调试. 各种语言的软件开发包(SDK)http:/ ...

  8. 纯java分布式内存数据库_最新Java岗面试清单:分布式+Dubbo+线程+Redis+数据库+JVM+并发...

    最近可能有点闲的慌,没事就去找面试面经,整理了一波面试题.我大概是分成了Java基础.中级.高级,分布式,Spring架构,多线程,网络,MySQL,Redis缓存,JVM相关,调优,设计模式,算法与 ...

  9. java 编程题_最新JAVA编程题全集(50题及答案)92862

    <最新JAVA编程题全集(50题及答案)92862>由会员分享,可在线阅读,更多相关<最新JAVA编程题全集(50题及答案)92862(32页珍藏版)>请在人人文库网上搜索. ...

  10. python微博接口_使用python调用新浪微博接口

    微博很火啊,那python是不是可以调用微博的api做一个小应用呢?答案是:必须可以,哈哈使用python调用weibo api # 调用的url地址 此为获取某人的个人信息的api http://o ...

最新文章

  1. 快手日入数据量超 5120TB,数据管治如何做?
  2. 同济大学计算机云南2019,同济大学录取分数线2019(在各省市录取数据)
  3. 项目实战12.1—企业级监控工具应用实战-zabbix安装与基础操作
  4. tp摄像头的默认地址_tp-link怎么设置无线桥接 tp-link设置无线桥接方法【图文】...
  5. 操作系统真相还原不明白的地方
  6. Vagrant:将装在C盘的虚拟机移动到别的目录
  7. Windows以下系统蓝屏cmd一句话命令
  8. 解决Echarts官网无法访问的问题
  9. 使用WebSockets搭建多人在线聊天室
  10. win11输入法关闭简繁切换热键,解决webstorm全局查询按键失效
  11. 【转】String求求你别秀了
  12. 欧几里德 与 扩展欧几里得 学习笔记
  13. 电波传播基础公式总结
  14. 总谐波失真计算公式_黄金声学GR495四声道功放 低失真宽频响低调却有硬实力
  15. hey-cli初使用
  16. [CTF] 每日一题汇总
  17. redis如何设置定时过期_redis设置过期时间
  18. 2016年8月9日 星期二 --出埃及记 Exodus 16:9
  19. 智创万物,数赢未来——如何助推数智时代的发展浪潮
  20. ANSI与UTF-8区别

热门文章

  1. 小米路由器3 保姆级救砖回忆录及实操技巧演示
  2. win10下安装STEP7
  3. nfs 跟rpcbind的关系
  4. 厉害了,盘点那些改变世界的代码!
  5. 设计教务管理系统MySQL,数据库设计实例 教务管理系统
  6. 最近写的一个书店项目
  7. 人工智能技术发展综述
  8. STM32F407 FSMC驱动NAND FLASH MX30LF2GE8AB 附带测试程序链接
  9. 云南 代理服务器_今日更新快速ip代理服务地址 免费国外代理服务器 2013.4.17
  10. 数学建模学习(24): 排队论模型完整详细讲解,数学与案例结合,lingo软件搭配,数学不好也能学会!