我正在尝试打开一个Facebook对话框,但由于我不理解的原因,它不起作用。
此代码确实有效: (我清理了一下以更好地说明问题)
window.fbAsyncInit = function() {
// get settings...
$app_id = Drupal.settings.gdp_general.appid;
$channel_url = Drupal.settings.gdp_general.channel_url;
// init Facebook api
FB.init({
appId : $app_id, // App ID
channelURL : $channel_url, // Channel File
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
oauth : true, // enable OAuth 2.0
xfbml : true // parse XFBML
});
};
// login the user and ask for the required permissions.
FB.login(function(response) {
if (response.authResponse) {
FB.api('/me', function(response) {
// do some stuff with the retrieved data
// ....
// now post something on the users wall
FB.api('/me/feed', 'post', {
caption: $title,
message: $description,
link: $url
}, function(response) {
if (!response || response.error) {
// error
} else {
// post was succesfull
$form.submit();
}
});
});
} else {
//error
}
}, {scope: 'email, publish_stream'});
};
此帖向用户墙发送消息,并且工作正常。 但是我认为用户打开一个对话框会更好,这样他就可以看到将要发布到他的墙上的内容。
但是当我改变时
FB.api('/me/feed', 'post', {
到
FB.ui({method: 'feed',
它不再起作用并且facebook返回错误“错误消息:会话密钥没有相应的用户”。
答案 0 :(得分:0)
您是否正在使用页面访问令牌/以页面身份登录?在这种情况下,对话框不起作用