php - Facebook 连接 'next' 错误

标签 php javascript facebook

我正在尝试使用新的 facebook 身份验证系统,但无法登录。

我收到以下错误消息:


API 错误代码:100

API错误描述:参数无效

错误信息:next 不属于应用程序。


发送到 facebook 的 url 是:

http://www.facebook.com/connect/uiserver.php?app_id=444444444444444&next=http%3A%2F%2Fstatic.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%23%3F%3D%26cb%3Df357eceb0361a8a%26origin%3Dhttp%253A%252F%252Fwww.mysite.com%252Ff38fea4f9ea573%26relation%3Dopener%26transport%3Dpostmessage%26frame%3Df23b800f8a78%26result%3DxxRESULTTOKENxx&display=popup&channel=http%3A%2F%2Fwww.mysite.com%2Ffbtester.php&cancel=http%3A%2F%2Fstatic.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%23%3F%3D%26cb%3Df6095a98598be8%26origin%3Dhttp%253A%252F%252Fwww.mysite.com%252Ff38fea4f9ea573%26relation%3Dopener%26transport%3Dpostmessage%26frame%3Df23b800f8a78%26result%3DxxRESULTTOKENxx&locale=en_US&return_session=1&session_version=3&fbconnect=1&canvas=0&legacy_return=1&method=permissions.request

请注意 url 中的“Next”变量是:

next=http%3A%2F%2Fstatic.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%23%3F%3D%26cb%3Df357eceb0361a8a%26origin%3Dhttp%253A%252F%252Fwww.mysite.com%252Ff38fea4f9ea573 %26relation%3Dopener%26transport%3Dpostmessage%26frame%3Df23b800f8a78%26result%3DxxRESULTOKENxx


有什么可能出错的想法吗?我所做的只是从 facebook 的网站复制并粘贴 facebook 登录演示代码:


 <?php
define('FACEBOOK_APP_ID', 'your application id');
define('FACEBOOK_SECRET', 'your application secret');

function get_facebook_cookie($app_id, $application_secret) {
  $args = array();
  parse_str(trim($_COOKIE['fbs_' . $app_id], '\\"'), $args);
  ksort($args);
  $payload = '';
  foreach ($args as $key => $value) {
    if ($key != 'sig') {
      $payload .= $key . '=' . $value;
    }
  }
  if (md5($payload . $application_secret) != $args['sig']) {
    return null;
  }
  return $args;
}

$cookie = get_facebook_cookie(FACEBOOK_APP_ID, FACEBOOK_SECRET);

?>


<!DOCTYPE html>
 <html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:fb="http://www.facebook.com/2008/fbml">
  <body>
    <?php if ($cookie) { ?>
      Your user ID is <?= $cookie['uid'] ?>
    <?php } else { ?>
      <fb:login-button></fb:login-button>
    <?php } ?>

    <div id="fb-root"></div>
    <script src="http://connect.facebook.net/en_US/all.js"></script>
    <script>
      FB.init({appId: '<?= FACEBOOK_APP_ID ?>', status: true,
               cookie: true, xfbml: true});
      FB.Event.subscribe('auth.login', function(response) {
        window.location.reload();
      });
    </script>
  </body>
 </html>

感谢您的帮助!

最佳答案

我遇到了同样的错误,但我使用的是 Rails,问题是连接 URL 没有更新。我的本地应用程序在端口 3000 上运行,连接 URL 指向端口 80。

看看改变是否适合你。

  1. 转到 http://www.facebook.com/developers
  2. 编辑您正在处理的应用程序
  3. 点击左侧的连接标签
  4. 验证 Connect URL 是否设置正确

关于php - Facebook 连接 'next' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2710918/

相关文章:

Facebook 通过带有图形 API 的 Facebook 应用程序在墙上发布消息

php - 用于自定义集合的 Magento 分页

javascript - $scope.$watch 不会在每次更改时触发

javascript - 如何隐藏 Chart.js 上的刻度线?

javascript - 限制正则​​表达式中的字符长度

javascript - 如何在回调函数之外使用 FB.api(JS SDK) 响应?

php - 为什么这个查询 MySQL 查询运行时区分大小写?

php - jQuery,更新正确的字段

javascript - 在不刷新页面的情况下将变量从 JavaScript 传递到 PHP

xcode - 更新 XCode 和 Swift 后的“Set<NSObject >' does not have a member named ' containsObject”