2013-10-02 54 views
2

讓我解釋我的問題,目前我使用LinqToTwitter來執行用戶授權。是否可以從訪問令牌中檢索用戶的Twitter用戶ID?

我有我的網站連接Twitter的按鈕,當它的用戶點擊,一個Ajax請求需要執行授權的方法,用戶被重定向到:

"https://api.twitter.com/oauth/authorize?oauth_token=" 

,然後輸入自己的用戶名和密碼。

一旦完成,他是重定向到我的網站的urlReferrer,我收到我需要像用戶名,用戶ID字段,....

然後,如果社交網絡用戶的用戶ID不匹配與我的數據庫的任何條目我打開一個彈出窗口要求他的電子郵件(電子郵件是必填字段)

然後,一旦電子郵件已被用戶確認,我必須連接他在我們的網站通過製作一個ajax請求connectSocialUser(用戶標識,頭像,accessToken)。

對於谷歌和Facebook的我已經把在參數的訪問令牌,然後分別請這兩個網址:

"https://graph.facebook.com/me?fields=id&access_token=" 
"https://www.googleapis.com/oauth2/v1/userinfo?access_token=" 

這兩個網址給我回的用戶ID,並通過一個簡單的比較,我可以知道用戶是好人而不是篡位者。

所以我的問題是: 是否有可能從訪問令牌檢索用戶的用戶ID?

如果不能如何使這個作品?

非常感謝!

回答

1

只要您完成授權,LINQ to Twitter將填充auth.Credentials.UserId屬性。你也可以在那裏找到ScreenName。

+0

我認爲你不會完全理解我的要求。 事實上,我首先填充auth.Credentials正如你所說的,但之後,我不得不要求用戶的電子郵件,因爲你知道Twitter不允許它。 所以我必須做一個新的服務器請求,但我不能,因爲我要求完整授權的夫婦OAuth令牌和令牌驗證程序無效,我沒有存儲accessToken和accessTokenSecret –

+0

我認爲唯一的解決方案,我希望你能回答我,這是將用戶的訪問令牌密鑰存儲在數據庫中。 訪問令牌密碼有可能發生更改或始終保持不變?和AccessToken?對不起,但直到現在我總是在客戶端的其他社交網絡的API調用,並且就目前來說,在這種情況下accessToken經常變化。 –

+0

@DavidSautet Twitter OAuthToken/AccessToken不會更改。因此,您可以將它們保存爲UserID,並在後續請求上重新使用,方法是將所有4個令牌添加到授權人的證書中。 –

2

您正在尋找GET account/verify_credentials

您將收到當前訪問令牌的「id」(user_id)等等。

+0

這個端點是否有其他替代方案?我看到GET調用這個端點比其他類似的調用慢了約500倍。 – RHH

相關問題