Java 如何将公共状态更新发布到facebook

Java 如何将公共状态更新发布到facebook,java,android,facebook,Java,Android,Facebook,我有一个从我的应用程序中向facebook发布状态更新的方法,如下所示。 一切正常,但我希望能够更改状态的隐私设置,因为它现在总是只发布给我的朋友,我想让它发布给公众 我应该怎么做,或者API中有一些限制吗 private void postToFacebook(String message) { if(Session.getActiveSession().isOpened()) { Session.NewPermissionsRe

我有一个从我的应用程序中向facebook发布状态更新的方法,如下所示。 一切正常,但我希望能够更改状态的隐私设置,因为它现在总是只发布给我的朋友,我想让它发布给公众

我应该怎么做,或者API中有一些限制吗

private void postToFacebook(String message)
    {
        if(Session.getActiveSession().isOpened())
        {
            Session.NewPermissionsRequest newPermissionRequest = new Session.NewPermissionsRequest((Activity) this, Arrays.asList("publish_actions"));
            Session.getActiveSession().requestNewPublishPermissions(newPermissionRequest);
            Request request = Request.newStatusUpdateRequest(Session.getActiveSession(), message, new Callback()
            {
                @Override
                public void onCompleted(Response response)
                {
                    FacebookRequestError fer = response.getError();
                    if(fer != null)
                    {
                        Log.d("FBSEND", fer.getErrorMessage());
                    }
                    else
                    {
                        Toast.makeText(getApplicationContext(), "Posted Successfully!", Toast.LENGTH_SHORT).show();
                    }
                }
            });
            Request.executeBatchAsync(request);
        }   
    }

要发布公开帖子,您应该在请求的同时发送隐私参数

Request req = new Request();
Bundle b = new Bundle();
b.putString("privacy","{'value':'EVERYONE'}");
req.setParameters(b);
req.newStatusUpdateRequest(...
希望这能奏效。参考:


我没有尝试过这个代码。

这里有很多事情要考虑。

首先,大多数用户不喜欢公开发布,如果你的应用请求公开权限,他们更可能拒绝你的权限请求

其次,用户可以随时更改应用程序发布到的隐私(应用程序不知道),因此即使您请求公共权限,将来也可以更改其他内容(这将超出您的控制)

最后,当您请求发布权限时,您只能请求一次隐私上限。在NewPermissionsRequest中,您可以调用setDefaultAudience,类似于:

newPermissionRequest.setDefaultAudience(SessionDefaultAudience.EVERYONE);

你有你正在使用的库的javadoc吗。。。这是官方的facebook SDK,我想是吧?。。唯一导入的库是Facebook SDK,然后是Android支持库v4?如果你问我是否读过这篇文章来解决我的问题,那么是的,但是我没有找到一个让我明白如何去做的答案不,我是问这是否是你正在使用的API。