【发布时间】: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