java 微博 api_Java使用新浪微博API开发微博应用的基本方法

article/2025/10/19 22:04:43

新浪微博API现在运用比较广泛,做一个完整的开发流程Demo

1、第一步注册,就不多说了,注册帐号以及成为开发者帐号,这步操作不会的话请你马上砸掉电脑拔掉网线回家种田。

2、第二步创建应用,开发者帐号创建好了,打开新浪微博开发平台: http://open.weibo.com

上面菜单栏点击最后一个 管理中心

49ba948fcaf13ed7ae198c1027e22dfc.png

如果是web的应用的话选择创建网站接入的应用,然后根据新浪微博的要求balabalabala自己去搞定

应用创建完毕。点击应用跳转页面,点击查看应用参数,可以看到应用的相关参数,这些参数将会在第四步用到。

3、第三步下载sdk,回到顶部的菜单栏,点击 文档 ,再点击左边菜单栏sdk,选择java sdk,然后balabala下载,这步操作有问题也请回家种田。

3b743b9d3e63a16d96e17368e9e47486.png

所谓的sdk并非是sdk(个人觉得名称有点误导),而是一个可运行的工程,下载完毕之后解压 ,并导入到eclipse,可以看到两个目录 src和example

src是新浪微博的部分

example是实例,接口的demo

4、第四步配置参数,找到src目录下的config.properties

前三个参数需要自己配置 为第二步里说过的应用参数里的参数

后面的都是默认的不需要改

前三个参数配置如下

client_ID为App Key

client_SERCRET为App Secret

redirect_URI为 OAuth2.0授权的回调URL 应用信息>高级信息>OAuth2.0 授权设置下面的授权回调页  这是一个你自己填写的URL 指向的是你自己服务器 当然在开发阶段我们可以使用任何URL 只要能够让我们了解OAuth授权的流程就好了 这里我们就输入一个http://www.baidu.com  取消授权回调页也是如此 注意这里的URL的字符串必须是一致

5、第五步获取AccessToken,正常情况下AccessToken的获取是需要通过OAuth2.0认证的,但是为了更简单我先说一种简单的方法。后面再讲OAuth2.0

还是选择最上面的菜单栏 文档>API>API测试工具

选择创建的应用 点击获取AccessToken 下面的文本框里就是我们要的AccessToken

93bc917b4d38efb3281fbd99abdd341f.png

6、第六步先做一个接口实例

去微博API里随便找一个已有权限的接口,

我随便找了一个 获取用户发布的微博  statuses/user_timeline 做测试用的

522b6b8876978276a3b16e966f2c8f32.png

点击这个接口查看这个接口详情,可以查看到接口的每个传入参数以及返回参数 这个无需多说。

不使用任何SDK实现Oauth授权并实现简单的发布微博功能:创建一个Java项目,编写如下代码,具体过程代码中已写的很清楚,这里不再做解释:

注意先修改应用ID、应用密码和回调页面成你自己的!访问授权页面:

package com;

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

import java.net.URL;

import java.net.URLConnection;

import java.security.cert.CertificateException;

import java.security.cert.X509Certificate;

import java.util.Scanner;

import javax.net.ssl.X509TrustManager;

/**

* @author 刘显安

* 不使用任何SDK实现新浪微博Oauth授权并实现发微薄小Demo

* 日期:2012年11月11日

*/

public class Test

{

static String clientId="2355065950";//你的应用ID

static String clientSecret="72037e76bee00315691d9c30dd8a386a";//你的应用密码

static String redirectUri="https://api.weibo.com/oauth2/default.html";//你在应用管理中心设置的回调页面

public static void main(String[] args) throws Exception

{

testHttps();//测试

//第一步:访问授权页面获取授权

System.out.println("请打开你的浏览器,访问以下页面,登录你的微博账号并授权:");

System.out.println("https://api.weibo.com/oauth2/authorize?client_id="+clientId+"&response_type=code&redirect_uri="+redirectUri+"&forcelogin=true");

//第二步:获取AccessToken

System.out.println("请将授权成功后的页面地址栏中的参数code:");

String code=new Scanner(System.in).next();

getAccessToken(code);

//第三步:发布一条微博

System.out.println("请输入上面返回的值中accessToken的值:");

String accessToken=new Scanner(System.in).next();

updateStatus("发布微博测试!来自WeiboDemo!", accessToken);

}

/**

* 测试能否正常访问HTTPS打头的网站,

*/

public static void testHttps()

{

try

{

trustAllHttpsCertificates();//设置信任所有的http证书

URL url=new URL("https://api.weibo.com/oauth2/default.html");

URLConnection con=url.openConnection();

con.getInputStream();

System.out.println("恭喜,访问HTTPS打头的网站正常!");

}

catch (Exception e)

{

e.printStackTrace();

}

}

/**

* 以Post方式访问一个URL

* @param url 要访问的URL

* @param parameters URL后面“?”后面跟着的参数

*/

public static void postUrl(String url,String parameters)

{

try

{

trustAllHttpsCertificates();//设置信任所有的http证书

URLConnection conn = new URL(url).openConnection();

conn.setDoOutput(true);// 这里是关键,表示我们要向链接里注入的参数

OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream());// 获得连接输出流

out.write(parameters);

out.flush();

out.close();

// 到这里已经完成了,开始打印返回的HTML代码

BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));

String line = null;

while ((line = reader.readLine()) != null)

{

System.out.println(line);

}

}

catch (Exception e)

{

e.printStackTrace();

}

}

/**

* 获取AccessToken

* @param code 在授权页面返回的Code

*/

public static void getAccessToken(String code)

{

String url="https://api.weibo.com/oauth2/access_token";

String parameters="client_id=" +clientId+"&client_secret=" +clientSecret+

"&grant_type=authorization_code" +"&redirect_uri=" +redirectUri+"&code="+code;

postUrl(url, parameters);

}

/**

* 利用刚获取的AccessToken发布一条微博

* @param text 要发布的微博内容

* @param accessToken 刚获取的AccessToken

*/

public static void updateStatus(String text,String accessToken)

{

String url="https://api.weibo.com/2/statuses/update.json";

String parameters="status="+text+"&access_token="+accessToken;

postUrl(url, parameters);

System.out.println("发布微博成功!");

}

/**

* 设置信任所有的http证书(正常情况下访问https打头的网站会出现证书不信任相关错误,所以必须在访问前调用此方法)

* @throws Exception

*/

private static void trustAllHttpsCertificates() throws Exception

{

javax.net.ssl.TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[1];

trustAllCerts[0] = new X509TrustManager()

{

@Override

public X509Certificate[] getAcceptedIssuers()

{

return null;

}

@Override

public void checkServerTrusted(X509Certificate[] arg0, String arg1)

throws CertificateException

{}

@Override

public void checkClientTrusted(X509Certificate[] arg0, String arg1)

throws CertificateException

{}

};

javax.net.ssl.SSLContext sc = javax.net.ssl.SSLContext.getInstance("SSL");

sc.init(null, trustAllCerts, null);

javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

}

}

访问授权页面:

a11455c91f167c6dc5e57ebf8111ac49.png

授权成功:

ac50547a19a62314016e939dd6cd2490.png

发布微博成功:

feac0e88fcd19956914a4c8e2d91e738.png

控制台输出结果:

08ac1a856e62e41f550fae650886b639.png


http://chatgpt.dhexx.cn/article/4MfhNEgk.shtml

相关文章

新浪微博api的使用

在采集微博数据的时候,可以利用微博的API来进行调用。在调用微博APi的时候需要做两项工作,第一步是创建应用,第二步是安装微博SDK. 创建应用 创建应用的目的是获取app-key和app-secret,并设置授权回调页。 登陆微博开放平台创…

微博开放平台api使用

前言:微博开放平台提供了微博数据的api接口,不仅可以直接通过api调用微博服务发布微博查询微博,更重要的是,可以在自己的网站上获得新浪微博api的授权,调用微博的某些内容,就好像我们再网站中看到好文章要分…

【转载】使用微博API接口获取数据

巧妇难为无米之炊。 数据获取是数据分析的前提。许多网站会通过API接口向第三方开放网站的部分数据。新浪微博也不例外。你可以查看微博API列表。 商业数据API为(如place/nearby_timeline/biz)为收费接口,若想要调用这一类接口,…

微博官方API使用方法【全流程教学】

微博官方API使用方法【全流程教学】 微博开发者身份认证创建自己的应用新应用的相关配置基本信息高级信息 微博认证流程OAuth2.0认证(核心步骤)Access Token授权有效期接口调用Demo(以评论接口为例) 微博开发者身份认证 访问微博开放平台,登录自己微博账…

一文教会你JDK8的函数式编程

JDK8的1个新特性就是支持函数式接口(Functional Interface)。 函数式接口就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。 函数式接口可以被隐式转换为Lambda表达式。 我们也可以自行定义函数式接口,如: FunctionalInterface interf…

Modern C++ 学习笔记——C++函数式编程

往期精彩: Modern C 学习笔记——易用性改进篇Modern C 学习笔记 —— 右值、移动篇Modern C 学习笔记 —— 智能指针篇Modern C 学习笔记 —— lambda表达式篇Modern C 学习笔记 —— C面向对象编程Modern C 学习笔记 —— C函数式编程 Modern C 学习笔记——C函数…

java8函数式编程实例

什么是函数式编程 函数式编程是java8的一大特色,也就是将函数作为一个参数传递给指定方法。别人传的要么是基本数据类型,要么就是地址引用 ,我们要穿一个“动作”。 Stream 说到函数式编程,就不得不提及Stream,Stre…

Scala函数式编程

一、函数式编程定义: Scala是一门既面向对象,又面向过程的语言。在Scala中,函数与类、对象地位是一样,所以说scala的面向过程其实就重在针对函数的编程 了,所以称之为函数式编程 在Scala中定义函数需要使用 def 关键…

什么是函数式编程?

当我们说起函数式编程来说,我们会看到如下函数式编程的长相: 函数式编程的三大特性: immutable data 不可变数据:像Clojure一样,默认上变量是不可变的,如果你要改变变量,你需要把变量copy出去修…

python函数式编程

大家好 这里还还还是长弓 今天我们来讲讲python中的函数式编程 目录 函数式编程 高阶函数 map reduce filter sorted 返回函数 闭包 nonlocal使用 匿名函数lambda 装饰器 偏函数 函数式编程 有些同学疑惑了,我们已经学了函数,为什么还要学这…

函数式编程

Functional Programming 什么是函数式编程 函数式编程的思维方式:把显示世界的事务和事物之间的联系抽象到程序世界(对运算过程进行抽象) 函数式编程中的函数指的数学中的函数即映射关系,输入的值对应一个输出的值,…

appium环境搭建python_appium环境搭建python

1,appium是开源的移动端自动化测试框架;2,appium可以测试原生的、混合的、以及移动端的web项目;3,appium可以测试ios,android应用(当然了,还有firefox os);4,appium是跨平…

Windows下Appium环境搭建小结

文章目录 Windows下Appium环境搭建小结需要安装的软件1. JDK下载安装/配置 2. Android SDK3. Maven下载安装/配置 4. Appium下载安装/配置 5. Eclipse TestNG 和 ADT 插件下载安装一条龙配置1、先配置Maven 创建一个项目 Windows下Appium环境搭建小结 本文需要读者已安装了Ec…

Mac端Python+Appium环境搭建

一、安装java sdk java安装:下载完直接安装jdk1.8 二、 安装Android Studio 1.下载安装 下载地址:https://www.androiddevtools.cn/# 2.安装完成后,打开SDK Manager 三、JAVA SDK和Android SDK环境变量配置 1.终端输入:ls…

安卓移动端appium环境搭建流程

安卓移动端appium环境搭建流程 基本步骤: 安装Node.js 安装JDK,及配置环境变量 安装SDK,及配置环境变量 安装Appium桌面版本(建议安装GitHub的最新版) python中pip下载Appium-Python-Client 下载allure-2.13.8并加入环境变量 管理员身份运行appiu…

pythonappium环境搭建_python+appium 环境搭建

最近学习了一下python语言,听说appium是做app的ui层的自动化的一个很好的框架,也是很多人在学习的框架,所以很感兴趣,也特意来学习一下,下面是我学习过程的一些心得和总结,希望对大家有所帮助。 一、环境搭…

Appium环境搭建(集齐Windows和MacOS的宝藏内容)

Appium环境搭建目录 Windows系统环境下安装Node.js安装JDK及环境变量配置添加环境变量 安装SDK添加环境变量 安装Appium可通过三种方法安装安装 **appium-doctor** MacOS系统环境下安装xcode安装依赖安装WebDriverAgent运行WebDriverAgent windows 安装 tidevice常用的tidevice…

mac appium环境搭建

appium环境的搭建其实也不复杂,主要是配置的比较多,只是在配置的过程中,根据当时的机器配置会遇到一些具体问题,一个个解决就可以了。 安装下面这篇文章搭建就可以了 超详细的Mac下appium环境搭建 配置java环境有问题,…

pythonappium环境搭建_python appium环境搭建

1,appium是开源的移动端自动化测试框架; 2,appium可以测试原生的、混合的、以及移动端的web项目; 3,appium可以测试ios,android应用(当然了,还有firefox os)&#xff1…

Appium 环境搭建

一、下载并安装appium客户端(勿装1.15.1版本,1.15.1版本很多坑) 进入appium官网http://appium.io/下载版本,将下载好的版本按照步骤进行安装 Appium-Python-Client第三方包 pip3 install Appium-Python-Client -i https://pypi.tuna.tsinghua.edu.cn/simple 二…