56
votes

How to get email id of the user who accepted my Twitter application?

I have gone through lot of forums. But they have mentioned, it is not possible. Also those posts are older than a year. May I know whether it is possible to get the user email id through twitter API using PHP?

I am getting Twitter user details using the following URL:

https://api.twitter.com/1.1/account/verify_credentials.json

6
Here i will get a solution also for the problem mentioned by vendors. (i.e) how to handle the situation for that case.. - Vinoth Babu
I can't find it in the Twitter docs! Only found answers from the Twitter community forums: twittercommunity.com/t/… - jonprasetyo
@PaulDessert a member of this particular vendor's staff has stated on a public forum that they have implemented functionality without documenting it. It stands to reason then, that someone (like the developers of the functionality, for instance) know how to use the feature despite it not appearing in the API documentation at all. These same people might be able to offer someone like Vinoth help he couldn't find elsewhere. - jeteon
As of January 7, 2017 this repo I created works and shows you exactly how to extract the users email address. github.com/DZuz14/CompleteSignInWithTwitterPHP - Dan Zuzevich

6 Answers

99
votes

This is now possible by filling out a form to request elevated permissions:

  1. Go to https://support.twitter.com/forms/platform
  2. Select "I need access to special permissions"
  3. Enter Application Name and ID. These can be obtained via https://apps.twitter.com/ -- the application ID is the numeric part in the browser's address bar after you click your app.
  4. Permissions Request: "Email address"
  5. Submit & wait for response
  6. After your request is granted, an addition permission setting is added in your twitter app's "Permission" section. Go to "Additional Permissions" and just tick the checkbox for "Request email addresses from users".

Note that user e-mail address has to be verified, otherwise Twitter refuses to provide it. (See include_email parameter description in elevated permissions doc page.)

40
votes

Now you can fetch user email address from twitter API and it's a lot much easier. Just follow these steps...

  1. Goto Twitter Apps

  2. Click on 'Create New App'

  3. Fill all required credentials and click on 'Create your Twitter application'

  4. Now click on 'Permissions' tab -> check 'Request email addresses from users' field and click on 'Update Settings'. (check given picture)

  5. Now in your PHP code, set all app details and add this code!

    $params = array('include_email' => 'true', 'include_entities' => 'false', 'skip_status' => 'true');

    $data = $connection->get('account/verify_credentials', $params); // get the data

    // getting twitter user profile details $twt_id = $data->id; //twitter user id $twt_email = $data->email; //twitter user email

All Done. Hope it help you, good luck. ;)

enter image description here

7
votes

It is now possible to retrieve a user's email address from Twitter (if the user permits it, of course).

You'll need to apply to have your application white-listed to receive xAuth.

Check here for more info: https://dev.twitter.com/rest/reference/get/account/verify_credentials

4
votes

Yes you can get email address.This is now possible by filling out a some permission.

1.Go to this Link: https://apps.twitter.com/

2.After go to permission tab inside your created Application

3.Select Addition permission checkbox in your APP.

4.After successfully update setting you can get email address from Twitter.

If in some case you can not getting email address then please check your Oauth Api request url.

Your request url should be this type :https://api.twitter.com/1.1/account/verify_credentials.json?include_email=true

2
votes

It is not possible to get user's email address from twitter. You can see it here. You can open a form page on your callback page and get user's email address on that page. You can refer here for example usage

1
votes

Here is how I have done this in ASP.Net using linqtoTwitter library http://www.bigbrainintelligence.com/Post/get-users-email-address-from-twitter-oauth-ap

// call verify credentials api
var twitterCtx = new TwitterContext(authTwitter);
var verifyResponse =
      await
          (from acct in twitterCtx.Account
           where (acct.Type == AccountType.VerifyCredentials) && (acct.IncludeEmail == true)
           select acct)
          .SingleOrDefaultAsync();

if (verifyResponse != null && verifyResponse.User != null)
{
    User twitterUser = verifyResponse.User;
    //assign email to existing authentication object
    loginInfo.Email = twitterUser.Email;

}