我想访问用户的电子邮件ID,因为我尝试了下面的代码,我为此目的检查了很多网站。我找到了这些方法来访问用户的电子邮件ID。但它们似乎都不起作用。请帮我解决这个问题。
提前致谢。
<?php
session_start();
require_once 'autoload.php';
use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
use Facebook\FacebookSDKException;
use Facebook\FacebookRequestException;
use Facebook\FacebookAuthorizationException;
use Facebook\GraphObject;
use Facebook\Entities\AccessToken;
use Facebook\HttpClients\FacebookCurlHttpClient;
use Facebook\HttpClients\FacebookHttpable;
// init app with app id and secret
FacebookSession::setDefaultApplication('MY_app_id', 'my_app_secret');
$helper = new FacebookRedirectLoginHelper('http://prov.resolv.com/provision_sid/Facebook_2/fbconfig.php');
try {
$session = $helper->getSessionFromRedirect();
} catch (FacebookRequestException $ex) {
} catch (Exception $ex) {
}
if (isset($session)) {
// graph api request for user data
$request = new FacebookRequest($session, 'GET', '/me');
$response = $request->execute();
// get response
$graphObject = $response->getGraphObject();
$fbid = $graphObject->getProperty('id'); // To Get Facebook ID
$fbfullname = $graphObject->getProperty('name'); // To Get Facebook full name
echo $femail = $graphObject->getProperty('email');
die();
$_SESSION['FBID'] = $fbid;
$_SESSION['FULLNAME'] = $fbfullname;
$_SESSION['EMAIL'] = $femail;
/* ---- header location after session ---- */
header("Location: index.php");
} else {
$loginUrl = $helper->getLoginUrl();
header("Location: " . $loginUrl);
}
?>
我尝试了多个选项来请求电子邮件ID
1&GT; $request = new FacebookRequest($session, 'GET', '/me?fields=name,email');
2 - ; $request = new FacebookRequest($session, 'GET', '/me',['fields' => 'id,name,email,address,first_name,last_name']);
通过上述请求,我无法获得用户的电子邮件ID。
是否有其他方式可以请求用户的电子邮件ID。
答案 0 :(得分:2)
您需要在登录网址中使用boolean isPrime = true;
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for (int i = 2; i< n; i++){
if(n%i==0) {
System.out.println("Not Prime");
isPrime=false;
break;
}
}
if(isPrime) {
System.out.println("Prime");
}
来申请email
权限。
SDK版本5:
scope
SDK版本4:
$loginUrl = $helper->getLoginUrl($redirectUrl, array('scope' => 'email'));
不要忘记也请求电子邮件字段:
$loginUrl = $helper->getLoginUrl(array('scope' => 'email'));
注意:如果用户不同意与您的应用分享电子邮件,您将无法获得该电子邮件。
答案 1 :(得分:0)
根据Facebook政策,如果用户将电子邮件保留为私人电子邮件,则无法通过以下行获取其他信息。
$helper->getLoginUrl($redirectUrl, array('scope' => 'email'));