我在使用我的应用程序时遇到了问题,一旦我转到我的应用程序,它肯定会显示一个登录页面而不是允许页面?
它始终显示登录页面1然后只显示允许页面,我曾尝试过其他应用程序,如果我是第一次使用的用户,它肯定会只显示允许页面,它没有显示登录页面。
我的问题是如何避免我的登录页面直接转到允许页面?
这是我的登录页面图片
这是我的应用链接
https://apps.facebook.com/christmas_testing/
这是我的facebook php jdk api编码
<?php
$fbconfig['appid' ] = "XXXXXXXXXXXXX";
$fbconfig['secret'] = "XXXXXXXXXXXXX";
$fbconfig['baseUrl'] = "myserverlink";
$fbconfig['appBaseUrl'] = "http://apps.facebook.com/christmas_testing/";
if (isset($_GET['code'])){
header("Location: " . $fbconfig['appBaseUrl']);
exit;
}
if (isset($_GET['request_ids'])){
//user comes from invitation
//track them if you need
header("Location: " . $fbconfig['appBaseUrl']);
}
$user = null; //facebook user uid
try{
include_once "facebook.php";
}
catch(Exception $o){
echo '<pre>';
print_r($o);
echo '</pre>';
}
// Create our Application instance.
$facebook = new Facebook(array(
'appId' => $fbconfig['appid'],
'secret' => $fbconfig['secret'],
'cookie' => true,
));
//Facebook Authentication part
$user = $facebook->getUser();
$loginUrl = $facebook->getLoginUrl(
array(
'scope' => 'email,publish_stream,user_birthday,user_location,user_work_history,user_about_me,user_hometown'
)
);
if ($user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
//you should use error_log($e); instead of printing the info on browser
d($e); // d is a debug function defined at the end of this file
$user = null;
}
}
if (!$user) {
echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
exit;
}
//get user basic description
$userInfo = $facebook->api("/$user");
function d($d){
echo '<pre>';
print_r($d);
echo '</pre>';
}
&GT;
答案 0 :(得分:1)
这是facebook最近推出的new auth dialog功能的效果。
使用这个新对话框时有两个“允许/登录”屏幕:
每个都会显示自己的对话框。首先,将显示常规权限,之后将显示扩展权限(如果您已请求扩展权限)...当用户首次登录时会发生这种情况,如果您希望稍后决定向应用程序添加其他权限,则可能会发生这种情况。<登记/>
取自Open Graph Beta › Auth Dialog
更新的Auth对话框将在第一个对话框上显示一组用户和朋友权限,并在第二个对话框屏幕上显示其他扩展权限(如果有)。
您可以禁用此功能,并通过更改应用内的设置返回旧的身份验证对话框。转到应用设置中的高级标签,取消选中Enhanced Auth Dialog
复选框。
答案 1 :(得分:-1)
在scope参数上,添加'offline_access'权限。这样,即使用户离线,用户也可以向应用程序授予权限。您将获得的access_token是无效的。