通过白名单PHP获取用户电子邮件

时间:2016-03-31 23:48:13

标签: php email twitter

我正在使用PHP Twitter登录系统&我已经要求我的Twitter应用程序在Twitter白名单上,以便我可以在用户在我的网站上注册时收到用户的电子邮件。

我的应用程序已成功列入白名单,但我没有找到任何教程如何使用PHP代码获取电子邮件。

index.php代码中有一部分: //变量del usuario

        $tw_name        = $_SESSION['request_vars']['screen_name'];
        $tw_id          = $_SESSION['request_vars']['user_id'];
        $oauth_key      = $_SESSION['request_vars']['oauth_token'];
        $oauth_secret_key = $_SESSION['request_vars']['oauth_token_secret'];

        $connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $oauth_key, $oauth_secret_key);
        $my_data = $connection->get('users/show', array('screen_name' => $tw_name, 'user_id'=> $tw_id));
        $my_tweets = $connection->get('statuses/user_timeline', array('screen_name' => $screen_name, 'count' => 10));       
        $my_email = $connection->get('account/verify_credentials', array('screen_name' => $tw_name, 'user_id'=> $tw_id,'include_email'=>true));

echo '<strong>Name:</strong> '.$my_data->name.
        '<br><strong>Date: </strong> ' .$my_data->created_at.
        '<br><strong>Description:</strong> ' .$my_data->description.
        '<br><strong>Location:</strong> ' .$my_data->location.
        '</br><strong>Lenguage:</strong> '.$my_data->lang.'<br>';
        echo $my_email->email;

我可以看到姓名,日期等,但我可以通过用户电子邮件,帮助

1 个答案:

答案 0 :(得分:0)

转储$my_email的内容是什么?这可能是一个错误或描述的行为,在Twitter文档:

  

“当设置为true时,将在用户对象中返回电子邮件作为   串。如果用户的帐户中没有电子邮件地址,   或者如果电子邮件地址未经验证,将返回null。“

情况可能如此?

如果不是,你可以尝试这样做:

$my_email = $connection->get("account/verify_credentials", ['include_entities' => true, 'skip_status' => true, 'include_email' => true]);

或简单地说:

get("account/verify_credentials", ['include_email' => true]);

使用纯布尔而不是字符串,在此处找到:https://github.com/abraham/twitteroauth/issues/364并阅读官方文档:https://dev.twitter.com/rest/reference/get/account/verify_credentials这是有道理的。

如果这不起作用(应该这样),在其他一些地方,他们只使用:

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

http://code.runnable.com/UnUm0Nx6Lu1MAAAY/how-to-use-twitter-oauth-in-php-web-application-for-twitteroauth

希望它有所帮助!