使用python調用sina微博api的方法
這是本人第一次使用API,所以對很多認證的機制都不熟悉,網路上的資料非常有限。這一次調用sina的api走了很多的彎路,不過最終還是成功了。這裡把方法分享給大家,希望能夠對大家有所協助。
首先,新浪採用的是Oauth授權方式。具體授權方法如下:
註冊新浪帳號
進行開發人員認證
建立APP
注意此時,你會得到一個APPKEY和一個APPSECRET,在下面的認證過程中,這是必不可少的一步。
關於redirecturl:
在你的APP中要設定一個redirecturl。這個redirecturl的含義是,當你的使用者對你的APP進行了授權之後,網頁會自動跳轉到這個redirecturl,並且向這個redirecturl傳遞一個參數。有了這個參數,才能夠擷取accesstoken,而有了這個accesstoken,你才能有調用API的許可權。
如果沒有自己的網站,可以把redirecturl設定為https://api.weibo.com/oauth2/default.html,同時程式中的redirecturl也一定要與此一致。(在應用中修改redirecturl,半個小時才可生效)
得到redirecturl之後,可以在用瀏覽器得到該url,並且取得其code值,形如:
https://api.weibo.com/oauth2/default.html?code=0c571f78e770809b70f5
然後再通過該code值申請accesstoken,成功之後,即可獲得存取權限。
怎樣使用api呢?
首先,找到api文檔:http://open.weibo.com/wiki/API%E6%96%87%E6%A1%A3_V2
然後,找到一個你想使用的api,比方說:
statuses/public_timeline
返回最新的公用微博
URL:https://api.weibo.com/2/statuses/public_timeline.json
其次,對api名做一個變換:【將反斜線/替換為雙底線__】
這裡得到:statuses__public_timeline
那麼,statuses__public_timeline(),就是APIClient的成員函數名了。
執行個體代碼:
<pre name="code" class="python">import sysimport weiboimport webbrowserAPP_KEY = 'your key'MY_APP_SECRET = 'your secret'REDIRECT_URL = 'your redirect url'api = weibo.APIClient(APP_KEY, MY_APP_SECRET)authorize_url = api.get_authorize_url(REDIRECT_URL)print(authorize_url)webbrowser.open_new(authorize_url)code = raw_input()request = api.request_access_token(code, REDIRECT_URL)access_token = request.access_tokenexpires_in = request.expires_inapi.set_access_token(access_token, expires_in)print(api.statuses__public_timeline())</pre><p>