好的,我制作了一个代码,它显示出错了。请在弹出窗口出来时再试一次,并在colsole中说:undefined at“function callback(response){ 的console.log(响应); }“
这是代码:
<script>
function postToFeed() {
// call the API
var obj = {
method: 'feed',
link: 'https://apps.facebook.com/assault_combat/takegift',
picture: 'https://flyandsmash.herokuapp.com/images/Gift.png',
name: 'Take a gift from Assault Combat',
caption: 'https://apps.facebook.com/assault_combat/',
actions: [
{'name': 'Get Gift', 'link': 'https://apps.facebook.com/assault_combat/takegift'}
],
description: 'Action links are awesome.'
};
function callback(response) {
console.log(response);
}
FB.ui(obj, callback);
}
</script>
和btw,当我输入“FB.init和东西时,它也说错误...(我已经导入了div fb root和stuff)
答案 0 :(得分:3)
始终使用异步方式加载JavaScript SDK:https://developers.facebook.com/docs/javascript/quickstart
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '{your-app-id}',
status : true,
xfbml : true
});
//earliest possibility to use FB
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/all.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
关于错误:您在obj中添加的链接都不可访问,可能是主要问题。此外,标题不能和URL,但它应该仍然可以使用,因为Facebook只是删除它。最好尝试使用较少的参数,删除操作并在没有参数的情况下尝试。
我也会在没有嵌套函数的情况下编写它:
<script>
function callback(response) {
console.log(response);
}
function postToFeed() {
// call the API
var obj = {
method: 'feed',
link: 'https://apps.facebook.com/assault_combat/takegift',
picture: 'https://flyandsmash.herokuapp.com/images/Gift.png',
name: 'Take a gift from Assault Combat',
caption: 'https://apps.facebook.com/assault_combat/',
actions: [
{'name': 'Get Gift', 'link': 'https://apps.facebook.com/assault_combat/takegift'}
],
description: 'Action links are awesome.'
};
FB.ui(obj, callback);
}
</script>
确保在初始化SDK之后调用“postToFeed”,并始终关注用户交互/鼠标事件。如果您不在用户事件中使用浏览器,浏览器可能会阻止弹出窗口。