我正在使用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;
我可以看到姓名,日期等,但我可以通过用户电子邮件,帮助
答案 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');
希望它有所帮助!