【问题标题】:Facebook app requestsFacebook 应用请求
【发布时间】:2011-11-25 09:12:16
【问题描述】:

我有一个 facebook 应用程序,它是粉丝页面中的一个标签。

我已经使用签名的请求来查看用户是否喜欢该页面并根据该页面显示内容。

在提示用户登录并授予对应用程序的访问权限后,我还设法使用获取 facebook 用户 ID。

我不能做的是让“apprequests”功能正常工作。我已经尝试了几种方法:

仅供参考 - 我正在使用这个版本的 jquery:https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js

    <div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<form id="form1" runat="server">

<script type="text/javascript">

    window.fbAsyncInit = function() {
        FB.init({ appId: 'myappid', xfbml: true, cookie: true, oauth: true });
    };

    function inviteFriends() {
        FB.ui({
            method: 'apprequests',
            message: 'Enter this cool competition http://www.facebook.com/pages/My-Test-Fan-Page/204123762998981?sk=app_308637695832192',
            redirect_uri: 'http://www.facebook.com/pages/My-Test-Fan-Page/204123762998981?sk=app_308637695832192',
            display: 'iframe'
        },
            function (response) {
                console.log(response);
            }
        );
    }

....

当我这样做时,有 2 个问题(我认为它们可能是相关的) 1.请求未发送给选定的用户 2. 响应的函数没有被调用。 当我调用 FB.ui 方法时,我可以选择用户,但是当我这样做时,对话框会显示一个加载屏幕并关闭。

我发现奇怪的一件事是,当我没有包含“redirect_uri”参数时(据我所知,这不是必需的),我收到一个错误,说应用程序不拥有回调 url。

我也试过这样做

    var message = 'Enter this cool competition';
                var requestUrl = 'http://www.facebook.com/dialog/apprequests?app_id=308637695832192&redirect_uri=http://localhost:51934/Default.aspx&message=' + message;
                window.top.location.href = requestUrl;

这似乎也有效,我可以选择用户并且它似乎有效 - 我得到了我在 to[0]、to[1] 等查询字符串参数中添加的用户。

我做错了什么并且可能导致这种情况吗?当我请求用户授权应用程序时,我只是请求标准访问权限,据我从 Facebook 文档中得知,这就是所有应该要求的。如果在页面内可以做什么有一些限制,我也在徘徊?

任何帮助将不胜感激。

【问题讨论】:

    标签: facebook apprequests


    【解决方案1】:

    我也一直在为这个问题苦苦挣扎,我想我可能有一个可能的解决方案供你尝试。

    对于数字 1)在应用程序设置中,我只设置了页面选项卡选项的 url,当我选择将应用程序作为 facebook 应用程序时,突然请求被传递并显示。

    对于数字 2)我设置了 redirect_uri 并且没有调用回调函数,对话框将关闭。我认为 redirect_uri 仅在显示弹出时才会执行。尝试删除 redirect_uri 选项和显示选项

    顺便说一句,我也收到了关于不拥有重定向 uri 的错误。我不确定我改变了什么,这意味着我停止获取它,但怀疑是当我将 sdk init html 移动到 body 标记之后,如此处所述 https://developers.facebook.com/docs/reference/javascript/ 我之前在关闭之前拥有它身体标签。希望这会有所帮助。

    【讨论】:

    • #1 是我的问题,这解决了它!谢谢!
    猜你喜欢
    • 2011-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-14
    • 2012-11-06
    相关资源
    最近更新 更多