重新请求 Facebook 权限 PHP SDK 5.0
Re-asking for Facebook Permissions PHP SDK 5.0
我正在生成一个登录名 URL,效果很好,但在我的情况下,电子邮件权限是强制性的,因此我需要向用户解释并重新请求电子邮件权限。
这是我生成 URL:
的方式
$fb = new Facebook\Facebook([
'app_id' => fbappid,
'app_secret' => fbappsecret,
'default_graph_version' => 'v2.2',
]);
$helper = $fb->getRedirectLoginHelper();
$permissions = ['email', 'user_birthday', 'user_location', 'user_hometown', 'user_relationships']; // Optional permissions
$loginUrl = $helper->getLoginUrl('http://localhost/urbanportal/wifilogin.php?origlink='.$_SESSION['origlink'].'&routerlink='.$_SESSION['routerlink'].'&siteid='.$_SESSION['siteid'], $permissions);
我读到你可以传递第三个参数,表示你正在像这样重新请求:
$loginUrl = $helper->getLoginUrl('http://localhost/urbanportal/wifilogin.php?origlink='.$_SESSION['origlink'].'&routerlink='.$_SESSION['routerlink'].'&siteid='.$_SESSION['siteid'], $permissions, true);
但是我收到 "Length of param app_id must be less than or equal to 32" Facebook 错误,也许是针对 SDK 4.0?
文档似乎总是将我导航到:
FB.login(
function(response) {
console.log(response);
},
{
scope: 'user_likes',
auth_type: 'rerequest'
}
);
但这是针对 Javascript SDK...
快速查看 SDK 的源代码会发现有一个专用方法getReRequestUrl
:
/**
* Returns the URL to send the user in order to login to Facebook with permission(s) to be re-asked.
*
* @param string $redirectUrl The URL Facebook should redirect users to after login.
* @param array $scope List of permissions to request during login.
* @param string $separator The separator to use in http_build_query().
*
* @return string
*/
public function getReRequestUrl($redirectUrl, array $scope = [], $separator = '&')
虽然您不会得到每个 FB 用户的电子邮件地址,但我希望您知道; f.i。他们可能 没有 一个在 Facebook 上的文件,所以即使有 email
许可,你也不会得到电子邮件地址。
我正在生成一个登录名 URL,效果很好,但在我的情况下,电子邮件权限是强制性的,因此我需要向用户解释并重新请求电子邮件权限。
这是我生成 URL:
的方式$fb = new Facebook\Facebook([
'app_id' => fbappid,
'app_secret' => fbappsecret,
'default_graph_version' => 'v2.2',
]);
$helper = $fb->getRedirectLoginHelper();
$permissions = ['email', 'user_birthday', 'user_location', 'user_hometown', 'user_relationships']; // Optional permissions
$loginUrl = $helper->getLoginUrl('http://localhost/urbanportal/wifilogin.php?origlink='.$_SESSION['origlink'].'&routerlink='.$_SESSION['routerlink'].'&siteid='.$_SESSION['siteid'], $permissions);
我读到你可以传递第三个参数,表示你正在像这样重新请求:
$loginUrl = $helper->getLoginUrl('http://localhost/urbanportal/wifilogin.php?origlink='.$_SESSION['origlink'].'&routerlink='.$_SESSION['routerlink'].'&siteid='.$_SESSION['siteid'], $permissions, true);
但是我收到 "Length of param app_id must be less than or equal to 32" Facebook 错误,也许是针对 SDK 4.0?
文档似乎总是将我导航到:
FB.login(
function(response) {
console.log(response);
},
{
scope: 'user_likes',
auth_type: 'rerequest'
}
);
但这是针对 Javascript SDK...
快速查看 SDK 的源代码会发现有一个专用方法getReRequestUrl
:
/**
* Returns the URL to send the user in order to login to Facebook with permission(s) to be re-asked.
*
* @param string $redirectUrl The URL Facebook should redirect users to after login.
* @param array $scope List of permissions to request during login.
* @param string $separator The separator to use in http_build_query().
*
* @return string
*/
public function getReRequestUrl($redirectUrl, array $scope = [], $separator = '&')
虽然您不会得到每个 FB 用户的电子邮件地址,但我希望您知道; f.i。他们可能 没有 一个在 Facebook 上的文件,所以即使有 email
许可,你也不会得到电子邮件地址。