2

让我解释一下我的问题,目前我使用 LinqToTwitter 来执行用户的授权。

我的网站上有 Connect Twitter 按钮,当用户单击它时,ajax 请求请求执行授权的方法,用户被重定向到:

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

然后输入他的登录名和密码。

完成后,他会重定向到我网站的 urlReferrer,我会收到我需要的字段,例如用户名、用户 ID、...。

然后,如果社交网络用户的 UserId 与我的数据库中的任何条目都不匹配,我会打开一个弹出窗口询问他的电子邮件(电子邮件是必填字段)

然后,一旦用户确认了电子邮件,我必须通过发出 ajax 请求 connectSocialUser(userid, avatar, accessToken) 将他连接到我们的网站。

对于 Google 和 Facebook,我已经输入了访问令牌参数,然后分别请求这两个 url:

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

这两个 url 给了我用户 ID,通过简单的比较,我可以知道这个用户是好用户,而不是篡位者。

所以我的问题是:是否可以从访问令牌中检索用户的用户 ID?

如果不是,我怎样才能使它起作用?

十分感谢!

4

2 回答 2

2

您正在寻找GET account/verify_credentials

除其他外,您将收到当前访问令牌的“id”(user_id)。

于 2013-10-02T22:21:20.423 回答
1

完成授权后,LINQ to Twitter 将填充 auth.Credentials.UserId 属性。您也可以在那里找到 ScreenName。

于 2013-10-02T19:14:54.953 回答