使用新浪微博开放平台api同步微博内容至自己网站(新浪微博新的API授权方式为OAuth2以往的BasicAuth(图))
优采云 发布时间: 2021-10-19 11:09使用新浪微博开放平台api同步微博内容至自己网站(新浪微博新的API授权方式为OAuth2以往的BasicAuth(图))
1、注册新浪账号2、开发者认证
我需要认证,我等了一天。提交身份认证后即可使用,无需等待认证通过。
3、创建APP
系统会为此应用分配一个APP KEY和APP SECRET。这两个字符串非常重要,将在以后的身份验证或信息交换中使用。
4、设置应用授权回调页面
应用信息-高级信息-OAuth2.0 授权设置,设置授权回调页面。
如果没有自己的网站,可以设置redirecturl为,程序中的redirecturl要和这个一致。
如图所示:
如果没有设置授权回调页面地址,或者程序与此不同,会出现如下错误:
访问出错了!
你所访问的站点在新浪微博的认证失败,请你联系gnocob或者稍后再试。
(error:redirect_uri_mismatch)
如图所示:
5、下载所需版本的sdk
6、查看可用的 API
%E6%96%87%E6%A1%A3
可用于我的应用程序的接口:
7、测试及其他
Python SDK 调用 API 测试如下:
#encoding=utf-8
from weibo import APIClient
def get_access_token(app_key, app_secret, callback_url):
client = APIClient(app_key=app_key, app_secret=app_secret, redirect_uri=callback_url)
# 获取授权页面网址
auth_url = client.get_authorize_url()
print auth_url
# 在浏览器中访问这个URL,会跳转到回调地址,回调地址后面跟着code,输入code
code = raw_input("Input code:")
r = client.request_access_token(code)
access_token = r.access_token
# token过期的UNIX时间
expires_in = r.expires_in
print 'access_token:',access_token
print 'expires_in:', expires_in
return access_token, expires_in
if __name__ == '__main__':
app_key = '1234567'
app_secret = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
callback_url = 'https://api.weibo.com/oauth2/default.html'
access_token, expires_in = get_access_token(app_key, app_secret, callback_url)
# 上面的语句运行一次后,可保存得到的access token,不必每次都申请
#access_token = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
#expires_in = '00000000'
client = APIClient(app_key=app_key, app_secret=app_secret, redirect_uri=callback_url)
client.set_access_token(access_token, expires_in)
# 使用获得的OAuth2.0 Access Token调用API
print client.get.statuses__user_timeline()
print client.post.statuses__update(status=u'测试OAuth 2.0发微博')
OAuth 认证方式:
得到auth_url后,长这样:
%3A//oauth2/default.html&response_type=code&client_id=180341588&display=default,
用浏览器打开,会跳转到授权回调页面地址,像这样:
,
获取后面的code值,申请access_token。成功后即可获得访问权限。
注意新浪微博新的API授权方式是OAuth2,与之前的Basic Auth不同。详细参考:
如何使用OAuth2以及如何使用API,请参考:
如果在使用过程中出现问题,在google或者官方论坛搜索提示信息,