我使用OAuth将我的MVC应用程序与Twitter连接但我似乎无法获取外部数据?目前我正在使用它:
AuthenticationResult result = OAuthWebSecurity.VerifyAuthentication(Url.Action("ExternalLoginCallback", new { ReturnUrl = returnUrl }));
var extraData = result.ExtraData;
if (result.Provider == "facebook")
{
emailadres = extraData["username"];
}
else if (result.Provider == "twitter")
{
emailadres = extraData["username"];
}
Facebook确实给了我一封电子邮件,但Twitter似乎没有这样做......
任何解决方案?
答案 0 :(得分:1)
API不会向您返回电子邮件地址。如果您对用户的电子邮件地址感兴趣,则必须在自己的应用程序中将用户视为完全不同的行为。
答案 1 :(得分:1)
您可以通过查询以下端点获取名称 - GET account/verify_credentials
返回以下回复。但是无法从此回复中获取电子邮件或性别(请参阅Twitter论坛中的这些主题 - No Email,No Gender)。
{
"name": "Matt Harris",
"profile_sidebar_border_color": "C0DEED",
"profile_background_tile": false,
"profile_sidebar_fill_color": "DDEEF6",
"location": "San Francisco",
"profile_image_url": "http://a1.twimg.com/profile_images/554181350/matt_normal.jpg",
"created_at": "Sat Feb 17 20:49:54 +0000 2007",
"profile_link_color": "0084B4",
"favourites_count": 95,
"url": "http://themattharris.com",
"contributors_enabled": false,
"utc_offset": -28800,
"id": 777925,
"profile_use_background_image": true,
"profile_text_color": "333333",
"protected": false,
"followers_count": 1025,
"lang": "en",
"verified": false,
"profile_background_color": "C0DEED",
"geo_enabled": true,
"notifications": false,
"description": "Developer Advocate at Twitter. Also a hacker and British expat who is married to @cindyli and lives in San Francisco.",
"time_zone": "Tijuana",
"friends_count": 294,
"statuses_count": 2924,
"profile_background_image_url": "http://s.twimg.com/a/1276711174/images/themes/theme1/bg.png",
"status": {
"coordinates": {
"coordinates": [
-122.40075845,
37.78264991
],
"type": "Point"
},
"favorited": false,
"created_at": "Tue Jun 22 18:17:48 +0000 2010",
"truncated": false,
"text": "Going through and updating @twitterapi documentation",
"contributors": null,
"id": 16789004997,
"geo": {
"coordinates": [
37.78264991,
-122.40075845
],
"type": "Point"
},
"in_reply_to_user_id": null,
"place": null,
"source": "<a href=\"http://itunes.apple.com/app/twitter/id333903271?mt=8\" rel=\"nofollow\">Twitter for iPhone</a>",
"in_reply_to_screen_name": null,
"in_reply_to_status_id": null
},
"screen_name": "themattharris",
"following": false
}
修改强>
正如Davis在评论中提到的那样,可以通过新的API修改获得email
。但我保持这个答案是为了支持问题的完整性。
答案 2 :(得分:0)
不确定gender
,但您可以获得username
和email
。
查看有关获取gender
的答案here和here。
我在iOS App中使用了 Twitter framework 来获取用户详细信息和电子邮件地址。 Twitter为此提供了一个漂亮的框架。
要获取用户电子邮件地址,您的应用应列入白名单。这是link。转到use this form。您可以发送邮件到sdk-feedback@twitter.com,其中包含有关您的应用程序的一些详细信息,如消费者密钥,应用程序的App Store链接,隐私政策链接,元数据,如何登录我们的应用程序的说明等等。他们将在2-3个工作日内回复。
以下是我与Twitter支持团队交谈后如何列入白名单的故事:
向sdk-feedback@twitter.com
发送邮件,其中包含有关您的应用程序的一些详细信息,例如消费者密钥,应用程序的App Store链接,隐私政策链接,元数据,如何登录我们的应用程序的说明。在邮件中提到您要在应用程序内访问用户电子邮件地址。
他们会审核您的应用并在2-3个工作日内回复您。
一旦他们说您的应用已列入白名单,请在Twitter开发人员门户中更新您的应用设置。登录apps.twitter.com并:
希望它有所帮助!!!
答案 3 :(得分:0)
请求用户的电子邮件地址要求您的应用程序被Twitter列入白名单。要请求访问用户电子邮件地址,请转到此处https://support.twitter.com/forms/platform
一旦列入白名单,就会在apps.twitter.com上的应用权限下显示“向用户请求电子邮件地址”复选框。隐私政策URL和服务条款URL字段也将在电子邮件访问所需的设置下提供。如果启用,将通过oauth / authorize对话框通知用户您的应用可以访问其电子邮件地址。