[英]Use Facebook PHP SDK with Facebook JavaScript SDK 2014
[英]Facebook PHP SDK how to get user email from Facebook JavaScript SDK 2014
我同時使用Facebook PHP(4.0)和JS(2.0)SDK。 我可以使用PHP但不是用戶的電子郵件來獲取用戶配置文件數據。 用戶的電子郵件可以使用Javascript SDK,但我需要在PHP中使用它。
我用的是:
$user_profile = (new FacebookRequest($session, 'GET', '/me'))->execute()->getGraphObject(GraphUser::className());
這有效但GraphUser類沒有在4.0中獲取用戶電子郵件的功能。
有關如何使用Facebook PHP SDK 4.0獲取用戶電子郵件的任何想法?
// Facebook SDK v5 for PHP
// https://developers.facebook.com/docs/php/howto/example_access_token_from_javascript/5.0.0
session_start();
$fb = new Facebook\Facebook([
'app_id' => '{app-id}',
'app_secret' => '{app-secret}',
'default_graph_version' => 'v2.4',
]);
$helper = $fb->getJavaScriptHelper();
$accessToken = $helper->getAccessToken();
$fb->setDefaultAccessToken((string) $accessToken);
$response = $fb->get('/me?locale=en_US&fields=name,email');
$userNode = $response->getGraphUser();
var_dump(
$userNode->getField('email'), $userNode['email']
);
GraphUser
繼承自GraphObject
因此您應該能夠使用泛型方法來獲取字段:
$user_profile->getProperty("email");
將登錄URL更改為
$loginUrl = $facebook->getLoginUrl(array(
'scope' => 'email'
));
您還可以添加其他權限
$loginUrl = $facebook->getLoginUrl(array(
'scope' => 'email, user_activities '
));
在獲得登錄URL之前請求權限。
與Facebook登錄檢查權限這里
所以你可以收到用戶郵件
$user_profile['email'];
和用戶名
$user_profile['username'];
更改FacebookRequest()參數如下。 更改getLoginUrl()參數如下
$request = new FacebookRequest( $session, 'GET', '/me?locale=en_US&fields=name,email' );
$loginUrl = $helper->getLoginUrl( array(
'scope' => 'email'
));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.