新浪微博OAuth2.0授权及使用python调用微博API - Go语言中文社区

新浪微博OAuth2.0授权及使用python调用微博API


通过调用新浪微博API获取数据时数组采集中一个很好的方法,为了获取较新的资讯数据内容,本文主要介绍新浪微博OAuth2.0授权机制、微博开发者平台的使用、python调用微博API等内容,文末提供测试版python调用微博API的代码。

1. 新浪微博OAuth2.0授权机制

官方详解见连接:

新浪微博OAuth2.0授权机制

2.微博开发者平台的使用

地址:https://open.weibo.com/

打开微博开发者平台,采用网站接入WEB的方式。(移动端或微服务可以尝试)。

点击右上角的登陆:

采用账号登陆或安全登陆等方式,如无微博账户,可点击立即注册自行注册一个。

登陆后点击立即接入,创建新应用如下:

在此过程中,应用名称可能会和已有的冲突,改了好多次才成功创建。创建成功后页面自动跳转如下:

此时可以看到新建成功的AppKey与App Secret。

到此还尚未结束,还需要获取OAuth2.0 授权回调页,点击左侧高级信息后:

此时可以看到,授权回调页:未填写,取消授权回调页:未填写。点击右侧的编辑,输入两个地址:

如果暂时想不到合适的地址,可以填写 https://api.weibo.com/oauth2/default.html 

点击提交后,至此,微博开发者平台相关配置已全部完成。

3.python调用微博API

环境:pycharm、python3.6

安装包:sinaweibopy-ng

注:由于网传安装包sinaweibopy在测试时无法安装,可能是由于版本不同所致,官方提供SDK下载地址如下:https://open.weibo.com/wiki/SDK#Python_SDK ,但是测试时无法访问,故下载的安装包为sinaweibopy-ng进行测试,如图:

测试版python调用微博API的完整代码如下:

"""
 !/usr/bin/env python3.6
 -*- coding: utf-8 -*-
 --------------------------------
 Description :
 --------------------------------
 @Time    : 2019/4/14 18:40
 @File    : weiboAPI.py
 @Software: PyCharm
 --------------------------------
 @Author  : lixj
 @contact : lixj_zj@163.com
"""

from weibo import APIClient

# 1.配置
APP_KEY = '你的APP_KEY'
APP_SECRET = '你的APP_SECRET'
CALLBACK_URL = '你的CALLBACK_URL'  # 回调授权页面,用户完成授权后返回的页面

# 2.调用APIClient生成client实例
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)

# 3.得到授权页面的url
url = client.get_authorize_url()
print(url)

# 4.点击访问url,在浏览器端获得code
code = '6ecdbf350f0680a6f00cc8c34ae721a6'
req = client.request_access_token(code)
client.set_access_token(req.get('access_token'), req.get('expires_in'))

# 5.调用微博普通读取接口,返回最新的公共微博。
# 接口详情见 https://open.weibo.com/wiki/2/statuses/public_timeline
statuses = client.statuses__public_timeline()['statuses']
print(len(statuses))
# 6.输出部分信息
for i in range(0, len(statuses)):
    print(u'昵称:' + statuses[i]['user']['screen_name'])
    print(u'简单介绍:' + statuses[i]['user']['description'])
    print(u'位置:' + statuses[i]['user']['location'])
    print(u'微博:' + statuses[i]['text'])
    print(statuses[i])

问题1:

Make sure that you use a version of Python supported by this package. Currently you are using Python 3.6.

不兼容python版本,安装silangweiboapi-en即可

问题2:

注册微博开发版本,账号设置-高级设置;

授权回调页在授权设置里面没有。

填写完整的信息即可,对应填写的网站。

问题3:

输出信息方式:

statuses = client.statuses__public_timeline()['statuses']

问题4:

每次调用api时连接的code的值都会改变。

http://apps.weibo.com/heyshheyou?code=6257d8f27bc683052d5521f6096a8b4c

解决方法:待解决。

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/HeyShHeyou/article/details/89680556
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-01 18:25:44
  • 阅读 ( 1168 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢