【问题标题】:Why is my Facebook Connect button taking me to the wrong URL?为什么我的 Facebook Connect 按钮会将我带到错误的 URL?
【发布时间】:2010-06-23 18:32:07
【问题描述】:

我正在尝试将我的网站与 Facebook 链接。

如果我调用 PHP SDK 中名为 getLoginUrl() 的方法,它会返回正确的登录 URL。此 URL 包含许多参数,其中一个是我的 API 密钥,它是正确的。这是我的“连接”按钮应该带我到的 URL。

但是,当我实际单击网站上的“连接”按钮时,会打开一个弹出窗口并显示“指定的 API 密钥无效”。经过一番检查,我发现此弹出窗口中的 URL 显示“api_key=undefined”。实际上,该 URL 与登录 URL 应该是完全不同的。

知道为什么会这样吗? 我能想象的唯一冲突是 codeigniter 或 jQuery。

很难更具体。我猜这需要对 Facebook SDK 有很好的了解才能回答。

非常感谢。 :)

【问题讨论】:

    标签: php javascript facebook


    【解决方案1】:

    如果需要,PHP 应该只处理登录回调,登录应该通过 javascript 完成。

    FB api 初始化:

    <div id="fb-root"></div>
    <script src="http://connect.facebook.net/en_US/all.js"></script>
    <script>
        FB.init({
            appId  : appId,
            status : true,
            cookie : true,
            xfbml  : true
        });
    </script>
    

    然后您可以在某个按钮上触发 fb 登录对话框:

    FB.login(function(response) {
        //callback
    }, {perms:'publish_stream'});
    

    还要确保您在“连接”选项卡下的 fb 应用程序中设置正确 - 应设置“连接 URL”和“基本域”。如果他们链接到错误的域,您将无法登录。

    【讨论】:

    • 我在本地主机上运行网站。我应该如何处理“连接”选项卡选项? (目前不在我的公寓,所以无法测试)。谢谢。 :)
    • 我已设法正确设置“连接”选项卡选项,但仍然无法正常工作。我使用了您的 API 初始化代码和 ,但是当我单击登录按钮时,我仍然收到相同的“指定的 API 密钥无效”错误,并且 URL 显示 api_key=undefined。 JS 从哪里获取 api_key?我实际上并没有在任何地方指定 API 密钥。只需应用 ID 和密钥。
    • 将您的 API 密钥分配给 FB.init() 中的“appId”。它说 appId 但它实际上需要 API 密钥。我现在才注意到,当您指出它实际上调用的是 appId 而不是 apiKey 时,大声笑。 Facebook api 搞砸了。
    • 哇,实际上只是文档有问题。它真的叫apiKey,而不是appId。我只是将其更改为 apiKey 并将我的 API 密钥作为值,现在它可以工作了。非常感谢!终于到了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    • 2020-11-05
    • 1970-01-01
    • 2013-02-20
    相关资源
    最近更新 更多