2016-08-03 11 views
2

Ich habe eine mobile App, und ich muss Benutzer mit Twitter registrieren.Verwenden Sie Twitter OAuth Echo für verify_credential, wie kann ich E-Mails erhalten?

Ich params X-Auth-Service-Dienstleister und X-Verify-Credentials-Berechtigung für OAuth Echo und senden sie an den Server

Server ruft verify_credentials und bekommt Twitter Benutzerprofil zu bekommen.

Dieses Profil enthält jedoch keine E-Mail des Benutzers, wie kann ich die E-Mail-Adresse des Benutzers im Back-End abrufen, während der Benutzer in der mobilen App autorisiert wird?

Antwort

3

Um die E-Mail-Adresse eines Benutzers anzufordern, muss Ihre Anwendung von Twitter auf die weiße Liste gesetzt werden. Um dies zu tun, benötigen Sie:

  1. Füllen Sie die folgenden form auf der Twitter API Policy Support.
  2. Wählen Sie die Option I need access to special permissions.
  3. Sie müssen Ihren Anwendungsnamen und Ihre ID eingeben (Sie können diese von https://apps.twitter.com abrufen).
  4. Wählen Sie in der Berechtigungsliste die erforderlichen Berechtigungen aus. In Ihrem Fall sollte es Email address sein.

Senden Sobald Ihr Antrag genehmigt wird, oder wenn Sie bereits die weiße Liste gesetzt sind, können Sie auf https://apps.twitter.com und unter dem App-Berechtigungen Abschnitt zurückgehen, wird eine neue Checkbox Request email addresses from users zur Verfügung. Sie müssen diese neue Option aktivieren. Die URLs für die Datenschutzrichtlinie und die Nutzungsbedingungen sind ebenfalls verfügbar.

An dieser Stelle können Sie den Parameter include_email zu Ihrer account/verify_credentials Anfrage hinzufügen.

Einige verwandte Punkte:

  • Benutzer werden darüber informiert, dass Ihre App während der Anmeldung die E-Mail-Adresse anfordert.
  • Sie erhalten nur verifizierte E-Mail-Adressen, wenn der Benutzer keine E-Mail-Adresse angegeben oder nicht überprüft hat, erhalten Sie null.
  • Wenn Sie bereits über authentifizierte Benutzer verfügen, müssen Sie das Benutzerzugriffstoken neu generieren, um die E-Mail-Adresse zu erhalten.
+0

regenerierende Benutzer Token geholfen, vielen Dank! –

2

Wenn Ihre App der weißen Liste wird als https://dev.twitter.com/rest/reference/get/account/verify_credentials vorgeschlagen

oder wie von @Hideo vorgeschlagen

Auf Server-Seite können Sie uns

GET Anfrage für: https://api.twitter.com/1.1/account/verify_credentials.json?include_email=true

mit folgenden Art auth 1.0 http-Header

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" 

Hier oauth_token wird Zugriffstoken erhalten werden, wie hier vorgeschlagen http://oauth.net/core/1.0/#anchor12

Sie folgende Art von Antwort erhalten:

{ 
    "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]" 
} 

Lassen Sie mich wissen, wenn Sie irgendwelche Bedenken haben.