我正在使用 JS-API 生成一个对话,请求许可发布我的应用程序生成的状态消息。下面是我正在谈论的屏幕截图:
代码如下:
FB.ui(
{
method: 'feed',
name: 'Facebook Dialogs',
link: 'http://developers.facebook.com/docs/reference/dialogs/',
picture: 'http://fbrell.com/f8.jpg',
caption: 'Reference Documentation',
description: 'Dialogs provide a simple, consistent interface for applications to interface with users.',
message: 'Facebook Dialogs are easy!'
},
function(response) {
if (response && response.post_id) {
alert('Post was published.');
} else {
alert('Post was not published.');
}
}
);
我使用文档中所述的示例 JS 代码,如果浏览器设置中未阻止弹出窗口,则效果很好。但如果没有显示状态消息,则该应用程序没有任何实用性!
请帮忙;我被困在最后阶段了。
最佳答案
我不明白为什么它会困扰你。如果用户阻止了 FACEBOOK 弹出窗口,那么这就是他的损失!
无论如何,如果你确实需要处理所有情况,那么你可以选择不同的方式。阅读 Feed Dialog 。
您可以做的是,完成上一步后,将页面重定向到 Facebook feed 方法,以便它将作为页面打开:
http://www.facebook.com/dialog/feed?
app_id=123050457758183&
link=http://developers.facebook.com/docs/reference/dialogs/&
picture=http://fbrell.com/f8.jpg&
name=Facebook%20Dialogs&
caption=Reference%20Documentation&
description=Dialogs%20provide%20a%20simple,%20consistent%20interface%20for%20applications%20to%20interact%20with%20users.&
message=Facebook%20Dialogs%20are%20so%20easy!&
redirect_uri=http://www.example.com/response
此处要更改的重要部分是 app_id
和 redirect_uri
,因此您的代码如下所示:
...
previous code
...
inside previous code success response
...
var url = "http://www.facebook.com/dialog/feed?" +
"app_id=" + YOUR_APP_ID + "&" +
"link=http://developers.facebook.com/docs/reference/dialogs/&" +
"picture=http://fbrell.com/f8.jpg&" +
"name=Facebook%20Dialogs&" +
"caption=Reference%20Documentation&" +
"description=Dialogs%20provide%20a%20simple,%20consistent%20interface%20for%20applications%20to%20interact%20with%20users.&" +
"message=Facebook%20Dialogs%20are%20so%20easy!&" +
"redirect_uri=" + YOUR_REDIRECT_URI;
top.location.href = url;
关于Facebook 应用程序,在用户墙上发布的对话,使用 Javascript API,在浏览器中阻止弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5387381/