1

我目前正在使用 php sdk 和 js sdk 开发一个 facebook 应用程序。(我两个都需要)

当用户尚未授权应用程序并加载画布页面 (https://apps.facebook.com/app_name/) 时,什么也没有发生,他只是得到一个顶部有 facebook 栏的空白页面。但如果他加载应用程序的直接 url (https://my_app.mydomain.com),它工作正常,他被重定向到 OAuth 对话框。如果他授权该应用程序,则他会被重定向到https://apps.facebook.com/app_name/并且 iframe 会正确加载。

如果用户已经授权应用程序,则两个链接都可以正常工作(https://apps.facebook.com/app_name/ 和https://my_app.mydomain.com)。

这是我的验证码:

<?php

require 'php-sdk/facebook.php';

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

$user = $facebook->getUser();



if ($user) {
  try {
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    $user = null;
  }
}

if ($user) {
  $logoutUrl = $facebook->getLogoutUrl();
} else {

    $params = array(
      'scope' => 'publish_stream',
      'redirect_uri' => 'https://apps.facebook.com/quiet_quies/'
    );

  $loginUrl = $facebook->getLoginUrl($params);
  header('Location: ' . $loginUrl);
}

有人对此有任何想法吗?这真的让我发疯......谢谢你的帮助。

4

1 回答 1

3

是的,@CBroe 是对的,在您的php代码中尝试将header('Location: ' . $loginUrl);行替换为

echo "<script language=javascript>top.location.href ='".$loginUrl."'</script>";

它应该可以工作。

于 2012-11-12T19:42:17.740 回答