我是Facebook应用程序和php的新手,我有一点问题。我无法让OAuth与我的应用程序一起正常工作。当您运行应用程序时,它不会重定向到oAuth对话框。它只显示一个什么都不做的空白页面。如果有人可以帮我这个,我真的需要它哈哈。谢谢! 到目前为止,我的代码如下:
<?php
include_once ('santatree/facebook.php');
$app_id = '276853929000834';
$application_secret = 'e3a12b11221f3fef1e06952e15fdc8e4';
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $application_secret,
'cookie' => true, // enable optional cookie support
));
?><?
if ($facebook->getSession())
{
$user = $facebook->getUser();
}
else
{
$loginUrl = "https://www.facebook.com/dialog/oauth? type=user_agent&display=page&client_id=276853929000834
&redirect_uri=http://apps.facebook.com/digitalsanta/&scope=user_photos";
header("Location: https://www.facebook.com/dialog/oauth? type=user_agent&display=page&client_id=276853929000834 &redirect_uri=http://apps.facebook.com/digitalsanta/ &scope=user_photos");
echo '';
}
答案 0 :(得分:2)
我根据会话令牌进行重定向。
这假设您将使用最新的php-sdk 3.1.1并在您的应用设置中启用Oauth2。
此处示例:登录/输出网址是插件的页脚。 http://apps.facebook.com/anotherfeed/TimeLineFeed.php?ref=facebook-stackoverflow
<?php
require './src/facebook.php';
$facebook = new Facebook(array(
'appId' => '',
'secret' => '',
));
$user = $facebook->getUser();
if ($user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl();
}
$access_token = $_SESSION['fb_135669679827333_access_token'];
if (!$access_token) {
echo '<script>';
echo 'top.location.href = "'.loginUrl.'";';
echo '</script>';
} else {
echo '<a href="'.logoutUrl.'">Logout</a>';
}
?>
https://developers.facebook.com/apps来修改您的应用。
答案 1 :(得分:1)
您只定义了变量$loginUrl
,但您没有重定向用户转到该网址。考虑使用
header("Location: $loginUrl");
如果您尚未发送标题,则转发您的用户。