简单的基于iframe的facebook身份验证

时间:2011-02-26 19:08:21

标签: facebook facebook-iframe facebook-authentication

我写了一个facebook应用程序,但身份验证无法正常运行。尽管谷歌搜索几个小时它没有解决。 请编写正确验证用户身份的脚本,如果用户单击允许按钮,只需显示文本“欢迎”,假设我已经写了所有基本的后缀。

require 'sdk/src/facebook.php';
 $app_id = 'MY APP ID';
 $canvas_page = "MY CANVAS URL";

// Create our Application instance (replace this with your appId and secret).
   $auth_url = "http://www.facebook.com/dialog/oauth?client_id="
            . $app_id . "&redirect_uri=" . urlencode($canvas_page) ."&scope=email,read_stream&installed=1";
  $facebook = new Facebook(array(
  'appId'  => $app_id ,
  'secret' => MY APP SECRET,
  'cookie' => true,
));
///... your code to solve !

2 个答案:

答案 0 :(得分:5)

没人提供最终的解决方案:最后我自己解决了。 我做的是。当用户允许应用程序时,Facebook会使用url发送“installed=1”参数。所以我检查了这个参数并重新定向到应用程序。我非常高兴找到非常好用和高效的解决方案。没有人回答我任何可以回答的答案。

if(isset($_REQUEST['installed']))
  echo("<script>top.href.location='http://apps.facebook/myapp' </script>");

答案 1 :(得分:0)

您似乎正在混合文档和PHP-SDK中的示例,从PHP-SDK中删除example应该可行。

遵循此answer中的代码:

<?php
require '../src/facebook.php';
$facebook = new Facebook(array(
  'appId'  => 'XXXXXXX',
  'secret' => 'XXXXXXXX',
  'cookie' => true,
));

$session = $facebook->getSession();
$loginUrl = $facebook->getLoginUrl();
$me = null;

if ($session) {
  try {
    $uid = $facebook->getUser();
    $me = $facebook->api('/me');

    echo "Welcome User: " . $me['name'] . "<br />";
  } catch (FacebookApiException $e) {
    error_log($e);
  }
} else {
    echo("<script> top.location.href='" . $loginUrl . "'</script>");
}
?>