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

Posted

技术标签:

【中文标题】简单的基于 iframe 的 Facebook 身份验证【英文标题】:Simple Iframe based facebook authentication 【发布时间】:2011-02-26 19:08:20 【问题描述】:

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

需要'sdk/src/facebook.php'; $app_id = '我的应用程序 ID'; $canvas_page = "我的画布 URL"; // 创建我们的应用程序实例(将其替换为您的 appId 和密码)。 $auth_url = "http://www.facebook.com/dialog/oauth?client_id=" . $app_id 。 “&redirect_uri=”。 urlencode($canvas_page) ."&scope=email,read_stream&installed=1"; $facebook = 新的 Facebook(数组( 'appId' => $app_id , '秘密' => 我的应用程序秘密, 'cookie' => 真, )); ///...您要解决的代码!

【问题讨论】:

您是否在 FB 内的应用配置中正确设置了所有 URL 参数?另外,请确保您使用的是相同的 URL,而不是试图让它从 localhost 或类似的东西上运行...... 【参考方案1】:

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

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

【讨论】:

【参考方案2】:

您似乎正在混合文档和 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>");

?>

【讨论】:

它在我的网站上显示了欢迎信息,即画布 url 而不是洞察 facebook iframe @Xcoder:什么? canvas URL 是 Facebook 内的 iframe 页面。 没有人提供终极解决方案:最后我自己解决了。我所做的是。当用户允许应用程序时,Facebook 会发送带有 url 的“installed=1”参数。 Si 我检查了这个参数并再次重定向到应用程序。我非常高兴找到非常好的和有效的解决方案。没有人回答我任何可投票的答案。
 if(isset($_REGUEST['installed'])) echo('
有人在尝试否决投票功能?!请解释为什么投反对票!

以上是关于简单的基于 iframe 的 Facebook 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在 iframe 中嵌入 Facebook/Twitter 帖子/视频?

Open Graph 基于 iframe 的视频嵌入支持?

如何识别网页是在 iframe 中加载还是直接加载到浏览器窗口中?

如何识别网页是在 iframe 中加载还是直接加载到浏览器窗口中?

iframe 选项卡 Facebook 应用程序显示在新页面上,而不是在 iframe/facebook-canvas 内

facebook内的iframe分享