这是在Facebook供稿对话框中可用的相同代码。我改变它采用我的应用程序的要求和灯箱打开如果取消使用'#'作为redirect_uri否则我使用响应函数将document.location移动到谢谢你的页面,我希望它会帮助你解决你的问题。
<script src='http://connect.facebook.net/en_US/all.js'></script>
<script>
FB.init({appId: "<?=$config['appId'];?>", status: true, cookie: true});
function postToFeed() {
// calling the API ...
var obj = {
method: 'feed',
redirect_uri: '#',
link: 'https://www.facebook.com/MyPageName/app_<?=$config['appId'];?>',
picture: 'https://www.abc.com/fbapp/img/welcome.jpg',
to: friendId,// js variable I am fetching from radio button selection
name: 'App Blah Blah',
caption: 'your_caption',
description: 'your_description'
};
function callback(response) {
// I commented out message print in div
// document.getElementById('msg').innerHTML = "Post ID: " + response['post_id'];
// check weither feedback is valid
if(typeof(response)!='undefined'){
document.location = 'thankyou.php';
}
}
FB.ui(obj, callback);
}
</script>
谢谢你的回答。根据文档,我想应该在点击每个按钮之后使用redirect_url。 (“在用户点击对话框上的按钮后重定向到的URL”) 但这不是最大的问题。至于应用程序设置:我没有真正的HTTPS访问服务器,只有自签名证书引发丑陋的错误。这应该是一个问题吗?在没有付费证书的情况下使用网络服务器时是否有一些解决方法? – 2011-12-26 09:41:14
您现在需要有一个真正的https站点。我认为这只能用付费证书来完成。如果没有,互联网上的东西真的是错误的,我永远不会相信再次在https网站上... – DMCS 2011-12-26 15:24:03
是的,我明白,没有证书,但没有办法模拟https :)但我的意思是一些解决方法Facebook不需要您的画布应用页面的https连接。尽管如此,感谢您的回答,现在我怀疑缺失的https是问题所在,并尝试通过某些似乎是解决方案的Facebook云服务合作伙伴进行托管,并且它似乎也适用于小型应用程序。 – 2011-12-26 16:11:36