Facebook应用程序请求

时间:2011-11-23 16:51:46

标签: facebook apprequests

我有一个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方法时,我可以选择用户,但是当我这样做时,对话框显示一个加载屏幕并且只是关闭。

我发现奇怪的一件事是,当我没有包含&#39; redirect_uri&#39;参数(从我可以看到的不应该是必要的),我得到一个错误,说应用程序没有拥有回调网址。

我也尝试过这样做

    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;

这也似乎有用,我可以选择用户,它似乎工作 - 我得到我添加到[0],[1]等查询字符串参数的用户。

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

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

我也一直在和这个问题吵架,并且认为我可能有一个可能的解决方案让你尝试。

对于数字1)在应用程序设置中,我只设置了“页面选项卡”选项的网址,当我选择将应用程序作为Facebook应用程序突然发送请求并且全部显示时。

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

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