2016-08-03 50 views
2

我有移动应用程序,我需要用twitter注册用户。使用Twitter OAuth Echo进行verify_credential,我如何获得电子邮件?

我越来越PARAMS X-AUTH-服务提供商和X-确认的凭证,授权OAuth Echo并将它们发送到服务器

服务器调用verify_credentials并获得Twitter的用户配置文件。

但是此配置文件不包含用户的电子邮件,我如何在移动应用授权用户的同时在后端获取用户的电子邮件?

回答

3

要请求用户的电子邮件地址,您的应用程序需要被Twitter列入白名单。为此,您需要:

  1. 在Twitter API策略支持中填写以下form。选择I need access to special permissions选项。
  2. 您需要填写您的应用程序名称和ID(您可以从https://apps.twitter.com获取这些信息)。
  3. 在权限列表中,选择您需要的权限。在你的情况下,它应该是Email address
  4. 提交

一旦申请获得批准,或者如果你已经列入白名单,你可以回去https://apps.twitter.com并根据应用程序的权限部分,一个新的复选框Request email addresses from users将可用。您需要启用这个新选项。隐私政策网址和服务条款网址字段也可用。

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

一些相关的要点:

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

重新生成用户令牌帮助,非常感谢! –

2

如果按照建议https://dev.twitter.com/rest/reference/get/account/verify_credentials

您的应用程序列入白名单或@Hideo

的建议在服务器端,您能给我们

GET请求:https://api.twitter.com/1.1/account/verify_credentials.json?include_email=true

有以下类型auth 1。

{ 
    "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": "[email protected]" 
} 

让我知道如果你有任何问题:这里http://oauth.net/core/1.0/#anchor12

建议您将得到响应以下类型0 HTTP头

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将获得访问令牌。

相关问题