微博官方API使用方法【全流程教学】 您所在的位置:网站首页 新浪微博发表文章有没有收益 微博官方API使用方法【全流程教学】

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

2024-07-10 00:01| 来源: 网络整理| 查看: 265

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

微博开发者身份认证

访问微博开放平台,登录自己微博账号,登录之后首先需要完善开发者的基本信息。 完善基本信息 填写完成后提交即可,然后需要进行开发者身份认证。 进行身份认证 填写相关身份信息,上传身份证照片然后提交等待审核通过,审核通过后开发者身份就认证完成了。

创建自己的应用

创建应用入口 创建应用页面

在这个页面填写自己的应用名称。(由于不允许应用重名,所以可能名字可能有点不好取),取好名字点击创建即可创建好自己的应用。 我的应用 然后就可以在我的应用页面看到新创建的应用了。

新应用的相关配置 基本信息

应用信息

进入应用信息界面后,显示应用状态为“尚未提交审核”,但是目前不需要再提交审核了,因为开发还没有完成。 在这个页面有应用最重要的两个信息App Key和App Secret,这两个值注意不要泄露。

高级信息

高级信息

这里有两个很重要的信息需要配置,OAuth2.0授权设置,必须设置授权回调页和取消授权回调页的地址,如果有自己的域名可以填自己的,没有可以按照图中的方式,填写微博默认的回调页。https://api.weibo.com/oauth2/default.html

剩余的其他信息可以不填写。

微博认证流程OAuth2.0认证(核心步骤)

认证流程是为了获得一个access_token,只有拥有这个token才可以调用其他官方API 授权API页面 官方的文档我感觉写的很简略,没有写清怎样请求获得access_token,我试了半天一直是出现各种各样的错误。在网上搜了一圈,网上有说使用sinaweibopy模块进行认证的,但是我搜了一下这个库是提供给python2使用的,python3不支持这个库。然后我又在微博开放平台找Python的SDK,发现现在只有IOS、Android和JS的SDK(很奇怪,我在网上看到其他博主的截图里是由各种语言SDK下载链接的,可能官方现在没有维护这些东西了)。

找了一大圈,找到了支持python3的模块,Github链接为sinaweibopy3 以及相关的解释博客:全网最详:python3调用新浪微博API接口获取数据 使用方法:把Github中的文件下载下来,里面的UserSinaweibopy3文件就是获取access_token的demo,将文件里的APP_KEY,APP_SECRET,REDIRECT_URL替换成自己的,然后运行程序即可。 demo片段 运行之后会跳转的微博的认证登录界面,登录成功之后会跳转到新的回调页。 授权成功回调页 如图所示,跳转的地址是之前设置的授权成功回调页+code,code是一个有效期比较短的口令,现在需要拿这个code向微博的认证服务器换取access_token。打开刚刚运行UserSinaweibopy3的界面,会让你输入这个code 输入code 把URL中的code输入后,服务器会返回数据,其中包含access_token,程序会打印在控制台中,这里就不再展示了。

Access Token授权有效期

授权有效期 由于还没有提交审核,所以接口授权级别只能是“测试”,有效期只有1天,过期的时候按照上面的流程再重新请求一个就好了。 注意access_token不要泄露。

接口调用Demo(以评论接口为例)

官方文档中评论接口信息如下图所示: 评论接口文档

根据官方文档,构造请求参数,然后请求对应接口即可,简单的实现代码如下: 在这里插入图片描述

补充说明:微博id和微博用户id不是一个东西,微博id是这一条微博的唯一标识,如上图浏览器地址栏所示,490xxxxxx6为该条微博的id。获得一条微博id的方法我目前没有专门找,对我而言可以通过请求微博后端数据获得(针对微博的各个接口我写了个文档,目前还没有发布),另外就是访问m.weibo.cn这个站点,点击要看的微博,地址栏会显示出微博id。

import requests def send_comment(): url = "https://api.weibo.com/2/comments/create.json" params = { 'access_token': '2.xxxxxxxxxxxxxxxxxxxxxxxxxxxxC', # 刚才请求到的access_token 'id': 要评论的微博ID, 'comment':'评论内容', 'rip':'你的公网IP' } requests.post(url=url, data=params)

调用该方法即可实现用刚刚授权的微博账号向微博id为id的微博发送评论。 需要注意的是:rip一定要填写公网IP,如果填写内网IP会请求失败。查看自己公网IP的方法:访问下列的链接即可获得本机的公网IP。

查看公网IP的链接:

http://ip.42.pl/rawhttps://ifconfig.me/iphttp://jsonip.comhttp://httpbin.org/iphttps://api.ipify.org/?format=json

另外还发现一个有意思的现象,rip可以自己写,如果填写一个境外IP那么相应评论显示的IP属地就在境外,不知道算不算官方的一个Bug。

其他接口对照官方的接口文档使用即可,方法与上面类似。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有