新浪微博 API 使用入门

时间:2024-02-21 20:11:03

1、注册新浪帐号

2、进行开发者认证

需要身份认证,等待了一天时间。提交身份认证后就可以使用了,不必等待认证通过。

3、创建APP

系统会为此应用分配一个APP KEY和APP SECRET,这两个字串非常重要,将会在以后认证或者信息交互时用到。

4、设置app的授权回调页

应用信息 - 高级信息 - OAuth2.0 授权设置,设置授权回调页。

如果没有自己的网站,可以把 redirecturl 设置为 https://api.weibo.com/oauth2/default.html ,程序中的 redirecturl 要与此一致。

如图:

 

如果没设置授权回调页地址,或者程序中的与此不一样,会出现如下错误:

访问出错了!
你所访问的站点在新浪微博的认证失败,请你联系gnocob或者稍后再试。
(error:redirect_uri_mismatch)

如图:

5、下载需要版本的 sdk

http://open.weibo.com/wiki/SDK

6、查看可用 API

http://open.weibo.com/wiki/API%E6%96%87%E6%A1%A3

我的应用可用的接口:http://open.weibo.com/apps/180341588/privilege

 

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 之后,形如:

https://api.weibo.com/oauth2/authorize?redirect_uri=https%3A//api.weibo.com/oauth2/default.html&response_type=code&client_id=180341588&display=default ,

用浏览器打开,会跳转到授权回调页地址,形如:

https://api.weibo.com/oauth2/default.html?code=305fc28bba8cbc2befa41ea43c2009d0

取得其后跟随的 code 值申请 access_token,成功之后,即可获得访问权限。

 

注意新浪微博新的API授权方式为 OAuth2,不同于以往的 Basic Auth。详细参考:http://blog.csdn.net/hfahe/article/details/5707170

OAuth2 的使用方式及 API 的使用简介,参考:https://github.com/michaelliao/sinaweibopy/wiki/OAuth2-HOWTO

使用过程有问题在 google 或官方论坛搜索提示信息即可,http://forum.open.weibo.com/searcher.php