微博开放平台api使用

article/2025/10/19 21:59:12
前言:微博开放平台提供了微博数据的api接口,不仅可以直接通过api调用微博服务发布微博查询微博,更重要的是,可以在自己的网站上获得新浪微博api的授权,调用微博的某些内容,就好像我们再网站中看到好文章要分享到微博或者其他社交网站中一样,非常方便。

下面就来探秘一番。
1.注册开发者并获取app key 和 app secret
百度很容易找到微博开放平台的入口,登录自己的微博账号,点击账号头像,会提示编辑开发者信息。
可以看到如下的页面,只需要按照提示填写,其中紧急联系人可以填自己,网站无所谓,填百度也行。
提交之后,你需要在我的应用下实名认证,上传图片时请耐心等待,有点慢而且没有上传进度。上传之后点击返回,可以跳转到新页面:
按照需要选择,然后创建自己的应用。至于这里面各种应用名词是什么意思我也不是很清楚,用着用着就熟了。我选择的是其他应用
创建之后,会收到邮件,含有app key 和 app secret 。这是获取授权的关键。
2.获取token
首页  http://open.weibo.com/ 点击api接口,会跳转到api接口说明文档页面,你会发现api有很多功能,包括创建微博,删除微博,关注/取消关注等非常多的接口,但是每个接口都需要token才能访问。token从何而来?
首先你需要获取一个code码,其次你需要有个调用接口的网址(因为我申请的是网页应用)。
设置关联的网址:
点击你的应用名,然后在左边的菜单中找到高级信息,然后就可以编辑了。
点击api接口下 ,进入授权接口查看用法
按照实例,你需要发一个get请求包含client_id和redirect_uri。可以直接拼接。
https://api.weibo.com/oauth2/authorize?client_id=123050457758183&redirect_uri=http://www.example.com/response&response_type=code
其中,client_id是你申请的app key,redirect_uri是自己要回调接口的地址,api会原样返回。可以直接在浏览器输入url,如下图所示:
这个页面是否有些熟悉呢?授权之后,网页会跳回redirect_uri页面,并且在url后面拼上code。于是code就有了
接下来获取授权token,授权接口第二个:
http://open.weibo.com/wiki/OAuth2/access_token 
页面上有详细的用法,发送http post请求,我用java的http-client4.5来做的,事实上其他方式也行。
代码写的比较烂,但是多少是可用的。5个必备参数值。我们已经获取了最后两个,前面两个在邮件中。代码就不贴出来了。看管自己敲一敲有利于熟悉用法,以后少不了发各种请求。
至此,我们成功授权,返回值里有需要的token值,如果返回error,请查看错误提示,或者百度错误信息。
此后只需要带着token,就可以请求到各种接口,虽然有次数限制,不过如果正常使用应该足够了。
后记:
1.本来我是想做一些类似于爬虫的功能,想在微博开放接口中,拿点数据,不过纵览api,多数是基于网页应用的微博分享的功能,
比如获取自己的微博,获取粉丝,发微博,关注等,不是自己需要的。
2.前面提了,微博开放api主要是用于第三方网站或者app接入微博,用微博登陆或者通过api做微博分享,所以有这方面需求的完全可以深入研究一下api接口。
3.api接口中,get请求都可以直接拼接字符串获取,但是对于刚刚请求授权的get请求来说,它是需要用户的账号同意授权给应用,所以必须要登录用户账号,如果浏览器保有微博登陆后的cookie,那么浏览器能自动登录从而拿到目标code,如果没有就会提示登录

    因而这个请求适合在浏览器上做,因为用代码发请求还要模拟登录,或者使用登录后的cookie,非常麻烦。不过api中其他get请求不会有这个问题,直接带token即可。模拟登录可以使用selenium的webdriver 拿到 cookie,其他模拟登录的方式普遍非常麻烦。

    当然,如果你内嵌到网站上,那登录就是用户的事了。

4.以发送微博 为例:
@Testpublic void test2() throws IOException {CloseableHttpClient client = HttpClients.createDefault();CloseableHttpResponse response = null;RequestConfig config =RequestConfig.custom().setConnectTimeout(10000).setSocketTimeout(10000).build();HttpPost post = new HttpPost("https://api.weibo.com/2/statuses/update.json");post.setConfig(config);List<NameValuePair> pairs = new ArrayList<>();BasicNameValuePair p1 = new BasicNameValuePair("access_token","");String content = "本条微博通过微博开放接口发送";BasicNameValuePair p2 = new BasicNameValuePair("status",content);BasicNameValuePair p3 = new BasicNameValuePair("visible","0");pairs.add(p1);pairs.add(p2);pairs.add(p3);post.setEntity(new UrlEncodedFormEntity(pairs,"utf-8"));response = client.execute(post);HttpEntity entities = response.getEntity();System.out.println(EntityUtils.toString(entities,"UTF-8"));}

5.如果将开放api嵌入自己的网站中,大概做法是:在分享微博按钮(第三方登陆按钮)上,发送微博授权认证,用户在网页上点击授权后,后台就获得了code,以及能根据code获取token。此后如果需要提取微博的用户名,也就可以直接在后台发请求。如果是分享到微博,也可以通过api来做到。
如果以后实践中用到了这些功能,再做记录,本文到此为止。
来自为知笔记(Wiz)




http://chatgpt.dhexx.cn/article/SVV2o4Eq.shtml

相关文章

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

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

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

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

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

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

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

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

java8函数式编程实例

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

Scala函数式编程

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

什么是函数式编程?

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

python函数式编程

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

函数式编程

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

appium环境搭建python_appium环境搭建python

1&#xff0c;appium是开源的移动端自动化测试框架&#xff1b;2&#xff0c;appium可以测试原生的、混合的、以及移动端的web项目&#xff1b;3&#xff0c;appium可以测试ios&#xff0c;android应用(当然了&#xff0c;还有firefox os)&#xff1b;4&#xff0c;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安装&#xff1a;下载完直接安装jdk1.8 二、 安装Android Studio 1.下载安装 下载地址&#xff1a;https://www.androiddevtools.cn/# 2.安装完成后&#xff0c;打开SDK Manager 三、JAVA SDK和Android SDK环境变量配置 1.终端输入&#xff1a;ls…

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

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

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

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

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

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

mac appium环境搭建

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

pythonappium环境搭建_python appium环境搭建

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

Appium 环境搭建

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

appium环境搭建全套

环境 1 Node.js 2 Appium 3 Appium-desktop 4 Appium-Python-Client 5 Python 6 JDK 7 Andriod SDK 8 Appium-doctor 一、安装Node.js 下载地址&#xff1a;https://nodejs.org/en/download/releases/ 注意&#xff1a;Appium版本是1.7.2&#xff0c;则选择的No…

Appium环境搭建

一、Appium框架原理 1.介绍 appium是一个移动端的自动化测试框架&#xff0c;可用于测试原生应用&#xff0c;移动网页应用和混合应用&#xff0c;支持iOS和Android。 2.原理 appium可以理解为一个c/s架构软件&#xff0c;在pc端安装的appium server端&#xff0c;通过appi…