Facebook JS API:如何让FB.Connect.streamPublish使用auto_publish

时间:2010-03-12 17:18:48

标签: facebook

我正在尝试将内容发布到某人的墙上。

它有效,但我也尝试使用auto_publish功能,因此用户只能获得一个弹出窗口,授予publish_stream扩展权限。

所以我将streamPublish的{​​{1}}设置为true,但我仍然会弹出一个问题,询问我是否要发布和/或编辑该消息。

我做错了什么?

这就是我正在运行的内容:

auto_publish

3 个答案:

答案 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){
相关问题