【问题标题】:iFrame app no longer workingiFrame 应用程序不再工作
【发布时间】:2011-08-24 19:37:45
【问题描述】:

我有一个简单的 Facebook 应用程序,它曾经在旧 API 中工作。这是一个 iFrame 应用程序,无论我尝试什么,我都无法使用新 API 获得用户会话。这是我现在的代码。

error_reporting(E_ALL);

require 'facebook.php';

$facebook = new Facebook(array(
  'appId'  => 'xxxx',
  'secret' => 'xxxx',
  'cookie' => true,
));

$session = $facebook->getSession();
if ( !$session )
{
 //echo "Failed. No session.<br />";

    $url = $facebook->getLoginUrl(array(
               'canvas' => 1,
               'fbconnect' => 0,
               'next'=>'http://www.facebook.com',
               'cancel_url' => 'http://www.facebook.com'
           ));

    //echo "<script type='text/javascript'>top.location.href = '$url';</script>";
    echo "<a href='".$url."' target='_blank'>First time using this App? Click here to connect it to your Facebook.</a>";

}
else {

    try {

        $uid = $facebook->getUser();
        $me = $facebook->api('/me');

        $updated = date("l, F j, Y", strtotime($me['updated_time']));

        echo "Hello " . $me['name'] . "<br />";
        echo "You last updated your profile on " . $updated;

    } catch (FacebookApiException $e) {

        echo "Error:" . print_r($e, true);

    }
}

我尝试了各种方法,但 $session 从未返回(单击链接后)。我正在使用正确的 appID/secret/facebook.php 但它总是落入 !$session if 路径。我做错了什么?

【问题讨论】:

标签: facebook session iframe


【解决方案1】:

使用新版本的 php-sdk (3.1.1) :)

您的代码使用旧 sdk(在 new 中没有 getSession 方法)并且您可能将迁移设置“OAuth Migration”设置为 true。

【讨论】:

  • 我会试试的。我可以做些什么来测试并确保这是问题所在?我不想重写代码仍然发现它不起作用。
  • 您可以尝试更改您的迁移应用设置。但是无论如何你必须在 2011 年 10 月 1 日之前切换到新的 sdk,所以现在好多了。
猜你喜欢
  • 2016-08-13
  • 1970-01-01
  • 2020-10-25
  • 1970-01-01
  • 2015-12-06
  • 1970-01-01
  • 2021-06-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多