我正在尝试将内容发布到某人的墙上。
它有效,但我也尝试使用auto_publish功能,因此用户只能获得一个弹出窗口,授予publish_stream
扩展权限。
所以我将streamPublish
的{{1}}设置为true,但我仍然会弹出一个问题,询问我是否要发布和/或编辑该消息。
我做错了什么?
这就是我正在运行的内容:
auto_publish
答案 0 :(得分:1)
问题源于您传递的最后一个参数为false。这是auto_publish bool,因此即使将此设置授予的权限设置为false,它也会提示用户是否要发布它。
// Set auto publish to true
FB.Connect.streamPublish("none", attachment, actionLinks, fId, "none", null, true);
答案 1 :(得分:1)
碰到这个帖子因为我有同样的问题,我解决了(不必使用其他apiClient调用)。
您在上面的答案中是正确的,因为FB没有正确设置autoPublish设置。
解决方法是在尝试发布之前调用FB.Connect.forceSessionRefresh
。
之前的代码:
function fbPublish() {{
FB.ensureInit(function() {{
FB.Connect.streamPublish('{0}', {1}, {2}, null, 'Anything else you would like to add?', fbPublishCallback, true, null);
}});
}}
现在代码:
function fbPublish() {{
FB.ensureInit(function() {{
FB.Connect.forceSessionRefresh(function() {{
FB.Connect.streamPublish('{0}', {1}, {2}, null, 'Anything else you would like to add?', fbPublishCallback, true, null);
}});
}});
}}
使用这种“旧”JavaScript方法的唯一原因是因为Graph API存在当前的错误,您无法发布操作链接。
我不知道他们在Facebook上有什么样的开发者,因为我遇到的问题是可耻的(这个,Graph API不允许动作链接,''而不是null导致“Application Server Error”等等)。
希望这有助于其他人。
答案 2 :(得分:0)
我仍然不确定为什么这不能按预期工作,但我检查了FB JS代码,并且它未能在其userInfo对象中正确设置我的用户autoPublish设置。
所以我通过以下方式致电stream.publish
来解决这个问题:
FB.Facebook.apiClient.callMethod("stream.publish", c, new FB.ImmediateSequencer(function(n,m){