java 微博sdk_Java基于新浪微博SDK实现发微博的功能
背景
最近用实现了一个简单的发微博的功能。
新浪微博的SDK已经经历了多次更新,而网上的资料、教程大多还是基于旧版本的,很多细节上有了一些变化。本文将基于最新的新浪微博SDK介绍发微博的过程。
简介
首先,需要在新浪微博开放平台创建自己的应用,获取App Key与App Secret两个字符串。
然后,下载新浪微博SDK。在配置文件中填入上一步获得点的AppKey与App Secret,以及回调地址。
运行例子程序中的weibo4j.examples.oauth2里的Oauth4Code.java,将会引导用户对你创建的应用授权。
授权完成后,一个code将会被传到回调地址。
将这个code输入控制台,会得到一个access_token。
利用这个access_token就可以调用发微博API了。
详解
创建应用
进入新浪微博开放平台
点击上方的微连接-其他,开始创建新应用。
填入应用名称,选择应用类型。在以前,”站内应用”是一个很方便的类型。但是现在已经没了,我选择的是”客户端”-“桌面”-“windows”。
创建成功后,进入应用基本信息页面,其中,App Key和App Secret已经生成了。
然后要进入 应用信息-高级信息-Oauth2授权设置 设置回调地址。如下图所示。
在这个简单的发微博功能中,我们不会真正用到回调地址。将回调地址设为百度是个不错的选择。
新浪微博SDK
新浪微博SDK下载
本以为新浪微博SDK会是一个jar包,结果却是一堆源码与资源文件,以及许多例子程序。
下载后,编辑Config.properties配置文件。
client_ID :appkey
client_SERCRET :app secret
redirect_URI : 回调地址
这三个参数都必须跟上一步得到的保持一致。
运行例子程序中的weibo4j.examples.oauth2里的Oauth4Code.java,将会打开默认浏览器,进入应用授权界面。
授权成功后,将会跳转到回调地址(我们填入的是百度),
地址栏中显示的是http://www.baidu.com/?code=******************
将**************复制下来,填入控制台。
输入code。
如果输入正确,access_token将被输出。
access_token有多个键值对,阅读源码可知道AccessToken.getAccessToken()方法可以取出其中的access_token字符串。这个字符串就是我们需要的“令牌”。
而发送微博的功能只需要两行代码即可实现
Timeline tm = new Timeline("前面得到的access_token");
tm.updateStatus("微博内容");
demo
这里给出一个简单的demo,运行后手动输入code即可自动发送微博。
public static void main(String[] args){
//TODO Auto-generated method stub
try {
Oauth oauth = new Oauth();
BareBonesBrowserLaunch.openURL(oauth.authorize("code"));
System.out.println(oauth.authorize("code"));
System.out.print("Hit enter when it's done.[Enter]:");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String code = br.readLine();
String access_token =oauth.getAccessTokenByCode(code).getAccessToken();
Timeline tm = new Timeline(access_token);
tm.updateStatus("测试:自动发送微博。");
} catch (WeiboException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
总结
到这里,发送微博的功能已经实现了。 但是其中有个问题,code必须手动从浏览器地址栏取出后输入我们的应用。而作为一个桌面应用,这个过程没什么简单的办法去掉。如果是网页应用的话,倒是比较容易获取。 有一个思路是通过代码模拟浏览器行为,但这很困难,因为新浪微博登录过程中对账号密码进行了比较复杂的加密,而加密算法藏得比较深难以找到。网上倒是有不少文章分析了这一过程,但新浪微博的加密算法也不是一成不变的,网上的方法基本上都已经过时。
java 微博sdk_Java基于新浪微博SDK实现发微博的功能相关推荐
- Java调用 新浪微博API 接口发微博(包含js微博组件、springMVC新浪登录)详解
参考自:http://www.myexception.cn/program/1930025.html https://blog.csdn.net/qq_36580777/article/details ...
- Java调用 新浪微博API 接口发微博,逐项讲解,绝对清晰
转载自:http://www.myexception.cn/program/1930025.html Java调用 新浪微博API 接口发微博,逐条讲解,绝对清晰 最近要做个课程设计,使用微博控制树莓 ...
- 基于Redis的用户发微博
基于Redis的用户发微博 一.用户发微博业务场景分析 二.用户发微博的redis技术方案 三.SpringBoot+Redis 实现用户发微博 步骤1:创建content表 CREATE TABLE ...
- MPSDK4J 是JAVA微信公平台开发SDK,没有复杂的功能,一切源于微信API,愿你会喜欢使用。-- 题记
MPSDK4J 是JAVA微信公平台开发SDK,没有复杂的功能,一切源于微信API,愿你会喜欢使用.-- 题记 1.介绍 MPSDK4J,非常直观的阐述了此项目的意义所在.没错,它就是JAVA语言环境 ...
- 利用java语言在eclipse下实现在新浪微博开发平台发微博(转)
实现原理: 开发者利用sdk包开发某个应用完成后,该应用与新浪微博服务器连接,通过HTTP数据形式与服务器的API接口交换数据.在开发过程中,亦可实时调试. 各种语言的软件开发包(SDK)http:/ ...
- Java调用 新浪微博API 接口发微博,逐条讲解,绝对清晰
最近要做个课程设计,使用微博控制树莓派,树莓派再控制发光二极管的亮和灭,主要设计分两层,上层是用Java调用新浪微博API来实现对微博旳监听,当我的微博被回复时能够自动读取评论内容,并根据评论的指令内 ...
- 最新JAVA调用新浪微博API之发微博(转)
最近有个项目中需要调用微博的api发新微博,网上找了很多相关教程,遇到了很多坑.后来给官方发邮件询问才知道微博官方早在2017年3月份就调整了相关接口,取消了网上现有教程中的发送微博的接口(updat ...
- 新浪微博Python SDK笔记——发微博(二)
本节将改进上一节中发微博的程序,主要的改进功能是:能够保存授权的access_token,不用进行重复授权.先看一下本节工程的目录结构(如图1所示). 图1 send_weibo.py为发微博的主程序 ...
- 新浪微博Python SDK笔记——发微博(一)
上一节中已经安装了Python SDK,可以在程序中引入weibo模块编写微博程序了.下面的程序的功能就是利用该模块发一条新微博,先开具体的代码: #! /usr/bin/python"&q ...
最新文章
- 表贴光电池 FU-NJL6402R-2 的特性
- python day-15 匿名函数 sorted ()函数 filter()函数 map()函数 递归 二分法...
- boost::hana::greater_equal用法的测试程序
- gulp build
- 【 POJ - 2033 】Alphacode (dp,有坑)
- 论文浅尝 | Leveraging Knowledge Bases in LSTMs
- 无符号有符号乘法_刘帅嵌入式系统-乘法指令
- iic总线从机仲裁_IIC协议底层原理超详细解析!示波器,逻辑分析仪多图预警
- [HNOI2005]狡猾的商人 带权并查集
- HDU2080 夹角有多大II【数学】
- 翻译: Web 3.0是一种几乎无需信任的承诺的协议/架构
- php百度地图普通ip定位,使用百度地图定位IP位置
- IDEA GIT 单文件回退到指定版本
- 同济版《线性代数》再遭口诛笔伐,网友:它真的不太行...
- 用DEM制作通用三维地形模型
- DroppyCtf靶机
- 冷高轮时间windows电脑屏幕保护
- 小武与SSD的相遇笑死我了!
- Java发送电子邮件(使用mail.jar和activation.jar)
- Linux计划任务篇