從下面地址去下載python的微博SDK
http://michaelliao.github.com/sinaweibopy/
下載安裝檔案,自己通過python setup.py install 去安裝。
# -*- coding: utf-8 -*-import sysimport weiboimport webbrowserAPP_KEY = '2XXXX1' # app keyAPP_SECRET = 'cb597a8XXXXXXXXXX71c3' # app secretMY_APP_SECRET = APP_SECRETREDIRECT_URL = 'http://127.0.0.1:8000/market/weibo'#A:這一點很重要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()#B:這一點很重要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())print 'user_timeline'r = api.statuses.user_timeline.get(uid=1800946163)for st in r.statuses: print st.text print 'friendships_friends'friends= api.friendships.friends.get(uid=1800946163,count=200)print friends
然後把上述代碼儲存到testweibo.py,這裡主要講幾點:
1、APP_KEY 和 APP_SECRET 需要你去http://open.weibo.com自己申請的網站或者APP去找
2、A:我看文檔上寫的CALLBACK_URL,這個你可以寫成本地地址,畢竟自己機器上跑django,需要擷取一個認證code;這裡特別注意,你要在中配置授權回調頁(callbackurl),否則你即使在代碼裡寫了一個真實的callbackurl,也會報錯,這個跟你的APP是否是通過審核還是未通過審核沒有關係,我看很多人都卡在這一步上。
3、B:就是等webbrowser,open_new認證頁面後,會得到一個認證code,自己手工輸入就行了
那我的那個REDIRECT_URL = 'http://127.0.0.1:8000/market/weibo'到底是執行了什麼呢,請往下看
1、 其實我就寫了一個View將CODE列印出來而已
@staticmethod def WeiboTest(request): print request.GET return HttpResponse("產生成功!")
:
微博認證後回調你的頁面時候,會把code帶過來,這樣子就可以看到了。
下一步怎麼操作?
當然回到執行testweibo.py的命令列下,把這個code輸入進去斷行符號,看圖:
這就是擷取friends的結果。
對於api的調用,大家可以嘗試使用工具去搭配測試:
你自然會想到API調用的命名規則是什麼,呵呵,如下:
URL:https://api.weibo.com/2/statuses/public_timeline.json
其次,對api名做一個變換:【將反斜線/替換為雙底線__】
這裡得到:statuses__public_timeline
那麼,statuses__public_timeline(),就是APIClient的成員函數名了。
擴充思考:
對於django上的項目,擷取code的方式可以先存入session裡,然後再調動使用,否則每次都去開個認證視窗複製黏貼豈不是很累。
對於python上的項目,可以採用檔案分享權限設定方式,將code存入檔案,然後再調用使用。