2014-03-31 24 views
0

我有一個應用程序,使用這個應用程序,在這個應用程序中用戶可以sign-up via twitter,我已經設置了的權限讀,寫和直接消息,所以當用戶註冊我的項目時,他授權我可以發佈代表的他。同樣在註冊期間,我得到了他的auth-token and oauth-token secret代表已通過身份驗證的用戶發佈推文?

但我不知道如何代表該用戶發佈推文。我嘗試在https://api.twitter.com/1.1/statuses/update.json提交形式般的地位,我的應用程序密鑰和密碼,用戶組oauth_token和祕密parmas但在應對我總是得到這個

{"errors":[{"message":"Bad Authentication data","code":215}]}

我使用python-社會權威性的標誌通過twitter。

任何幫助,將不勝感激。 謝謝

+0

確保您通過HTTPS發出請求的API://,而不是通過http://。此外,這可能會有所幫助:http://dev.twitter.com/discussions/15244 – xyres

回答

4

您需要指定用戶access_token與您的請求,這是Twitter知道哪些是當前經過身份驗證的用戶的方式。隨着python-social-auth你可以這樣做:

# given a user instance (and assuming Django ORM) 
social = user.social_auth.get(provider='twitter') 
backend = social.get_backend() 
form_data = { 
    'status': 'The new twitter status goes here' 
} 
response = backend.get_json(
    'https://api.twitter.com/1.1/statuses/update.json', 
    method='POST', 
    auth=backend.oauth_auth(social.extra_data['access_token']), 
    data=form_data 
) 
+0

是否有任何api,這將允許我通過只需要3個參數發佈狀態 - 例如:api.PostStatus(text,screen_name,密碼)? – sumanth232

相關問題