Javascript 使用JS变量将Facebook应用程序共享到墙
我有:Javascript 使用JS变量将Facebook应用程序共享到墙,javascript,facebook,Javascript,Facebook,我有: $.post( "https://host.com/save.php", { 'fb_id': userID, 'meth': 'get_db_ID' }, function(data) { link_id = data; console.log('from method' + link_id); }); FB.ui({ method: 'feed', name: 'My title for a link.', caption:
$.post( "https://host.com/save.php", {
'fb_id': userID,
'meth': 'get_db_ID'
}, function(data) {
link_id = data;
console.log('from method' + link_id);
});
FB.ui({
method: 'feed',
name: 'My title for a link.',
caption: ' ',
description: 'My description',
link: 'https://www.facebook.com/pages/Page-Test/1417010325197563?id=1417010325197563&sk=app_1413297985570561&app_data=u_id|'+link_id,
picture: 'http://host.com/myimage.png'
},
function(response) {
console.log('publishStory response: ', response);
});
但是我之前定义并分配了用户id的var
link\u id不显示。这是由异步事件引起的问题。link_id是在$.post的回调函数中设置的。此回调函数仅在POST请求完成后运行-这可能需要几秒钟,具体取决于连接。但是,$.post后面的代码会立即运行,这意味着在调用FB.ui时不会设置link_id。请尝试以下方法:
$.post( "https://host.com/save.php", {
'fb_id': userID,
'meth': 'get_db_ID'
}, function(data) {
link_id = data;
console.log('from method' + link_id);
FB.ui({
method: 'feed',
name: 'My title for a link.',
caption: ' ',
description: 'My description',
link: 'https://www.facebook.com/pages/Page-Test/1417010325197563?id=1417010325197563&sk=app_1413297985570561&app_data=u_id|'+link_id,
picture: 'http://host.com/myimage.png'
},
function(response) {
console.log('publishStory response: ', response);
});
});