首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Twitter OAuth verify_credential,我怎样才能收到电子邮件?

使用Twitter OAuth verify_credential,我怎样才能收到电子邮件?
EN

Stack Overflow用户
提问于 2016-08-03 10:43:12
回答 2查看 856关注 0票数 2

我有移动应用程序,我需要在twitter上注册用户。

我正在获得params X-8月-服务提供者和X-验证-凭据- OAuth回波授权,并将它们发送到服务器

服务器调用凭据并获取Twitter用户配置文件。

但是这个配置文件不包含用户的电子邮件,我如何在后端获得用户的电子邮件,同时在移动应用程序中授权用户?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-12 10:16:04

要请求用户的电子邮件地址,您的应用程序需要被Twitter白名单。要做到这一点,你需要:

  1. 在Twitter策略支持上填充以下表格
  2. 选择I need access to special permissions选项。
  3. 您需要填写您的应用程序名称和ID (可以从https://apps.twitter.com获取这些名称和ID)。
  4. 在“权限”列表中,选择所需权限。在您的例子中,应该是Email address
  5. 提交

一旦您的请求被批准,或者如果您已经被白名单,您可以返回到https://apps.twitter.com,在应用程序权限部分下,将有一个新的复选框Request email addresses from users可用。您需要启用这个新选项。“隐私策略URL”和“服务条款”URL字段也将可用。

此时,您可以将include_email参数添加到account/verify_credentials请求中。

与此相关的几点:

  • 用户将被告知,您的应用程序是请求电子邮件地址在登录过程中。
  • 您将只得到验证的电子邮件地址,如果用户没有提供任何电子邮件地址或没有验证,您将得到null
  • 如果已经有经过身份验证的用户,则需要重新生成用户访问令牌以获取电子邮件地址。
票数 3
EN

Stack Overflow用户

发布于 2016-08-14 09:24:25

如果您的应用程序如建议的那样被白化,凭据

或者像@Hideo建议的那样

在服务器端你可以

获取请求:email=true

使用以下类型的auth 1.0 http报头

代码语言:javascript
复制
Authorization: OAuth oauth_consumer_key="KgpUD2nx5UCH9DllSIM4D****",
                oauth_nonce="77252745154355061291979480247359",
                oauth_signature="jPd5e5Z5ibKDb40JUjAuDVpi9TU%3D",
                oauth_signature_method="HMAC-SHA1",       oauth_timestamp="1471161684",
                oauth_token="76472850016308****-qOqGdpxuVvT7Z7s5n9NFXqzIr11****",
                oauth_version="1.0"

在这里,oauth_token将按照这里的建议获得访问令牌,http://oauth.net/core/1.0/#anchor12

您将得到以下类型的响应:

代码语言:javascript
复制
{
  "id": 75534037587985****,
  "id_str": "75534037587985****",
  "name": "tester",
  "screen_name": "*********",
  "location": "",
  "description": "",
  "url": null,
  "entities": {
    "description": {
      "urls": []
    }
  },
  "protected": false,
  "followers_count": 0,
  "friends_count": 19,
  "listed_count": 0,
  "created_at": "Tue Jul 19 09:55:54 +0000 2016",
  "favourites_count": 0,
  "utc_offset": null,
  "time_zone": null,
  "geo_enabled": false,
  "verified": false,
  "statuses_count": 0,
  "lang": "en",
  "contributors_enabled": false,
  "is_translator": false,
  "is_translation_enabled": false,
  "profile_background_color": "F5F8FA",
  "profile_background_image_url": null,
  "profile_background_image_url_https": null,
  "profile_background_tile": false,
  "profile_image_url": "http://abs.twimg.com/sticky/default_profile_images/default_profile_4_normal.png",
  "profile_image_url_https": "https://abs.twimg.com/sticky/default_profile_images/default_profile_4_normal.png",
  "profile_link_color": "2B7BB9",
  "profile_sidebar_border_color": "C0DEED",
  "profile_sidebar_fill_color": "DDEEF6",
  "profile_text_color": "333333",
  "profile_use_background_image": true,
  "has_extended_profile": false,
  "default_profile": true,
  "default_profile_image": true,
  "following": false,
  "follow_request_sent": false,
  "notifications": false,
  "email": "testerdaff@gmail.com"
}

如果你有任何担心的话请告诉我。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38741323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档