python django成功調用sina微博api(最新)有圖

來源:互聯網
上載者:User

從下面地址去下載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存入檔案,然後再調用使用。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.