2014-01-30 162 views
2

我有誓言與Facebook,Google和Twitter合作;然而,我對後者的問題是每次使用「授權」URL而不是「身份驗證」。結果是每次都要求用戶授權我的應用程序。對於Google和FB,一旦應用程序被授權,他們在登錄時不會再被詢問。如果用戶登錄到其中一個服務,並且他們已經授權了我的應用程序,它會在幕後知道它會記錄它們立即進入我的應用。使用Twitter,每次都會將它們帶到授權屏幕。Tweepy身份驗證與授權

我知道這是由於流動我有與Twitter其中它說:後跟一個self.redirect(REDIRECT_URL)REDIRECT_URL = auth.get_authorization_url()

以上的關鍵是「授權」,這是不知道的用戶以前接受我的應用程序。在Twitter中,我知道有一個複選框「允許此應用程序用於使用Twitter登錄」。這是檢查。我無法找到的是Tweepy的正確路徑,它檢查用戶是否已登錄到Twitter並已授權我的應用程序。

我確實保存了Twitter在第一次授權時與用戶發回的令牌,但是,我不知道用戶是誰,直到他們登錄,因此我無法嘗試在練習的初始部分使用這些令牌。我應該注意到,在這個階段我不必使用來自Google或FB的令牌。

Tweepy能以上述方式使用還是需要做其他事情?

謝謝!

回答

3

幸運的是,有一個非常簡單的解決方案。當撥打api.get_authorization_url時,只需指定signin_with_twitter=True作爲關鍵字參數。您的電話應該是這樣的:

api.get_authorization_url(signin_with_twitter=True) 

這將導致Tweepy使用「認證endpoint you mentioned, instead of the authorization`端點。

+1

我不認爲這個人會得到答案。這完美的作品,非常感謝!這是在文檔中我錯過了什麼地方,或者你在哪裏遇到過這種情況?再次感謝! – C6Silver

+0

@ C6Silver:不客氣:)。我正在瀏覽所有標記爲「tweepy」的未解答問題,並添加答案。 –