1

我已成功发布到 Facebook 墙上,但我希望用户可以选择是否要将其发布到某些特定的朋友列表,例如熟人、家人等

我的代码给出了这个错误:

{"error":{"message":"(#100) privacy must contains a valid privacy 'value'","type":"OAuthException"}}

我添加了“隐私”属性并为其赋予了“家庭”的值,但它不起作用,但如果我删除隐私属性,则墙帖成功

try
        {
            Bundle parameters = new Bundle();
            parameters.putString("message", msg);
            parameters.putString("description", "Test 1");
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("value", "Family");
            parameters.putString("privacy", jsonObject.toString());
            response = Data.facebook.request("me/feed", parameters,"POST");

        } catch(Exception e) {
            e.printStackTrace();
        }
4

1 回答 1

5

值字段可以指定以下字符串之一:EVERYONE、ALL_FRIENDS、NETWORKS_FRIENDS、FRIENDS_OF_FRIENDS、CUSTOM。

如果 value 设置为 CUSTOM 并包含以下字符串之一,则必须指定 Friends 字段:EVERYONE、NETWORKS_FRIENDS(当对象可以被网络和朋友看到时)、FRIENDS_OF_FRIENDS、ALL_FRIENDS、SOME_FRIENDS、SELF 或 NO_FRIENDS(当对象只能通过网络看到)。

当朋友值设置为 SOME_FRIENDS 时,必须指定允许字段,并且必须指定“可以”查看帖子的用户 ID 和朋友列表 ID 的逗号分隔列表。

请改用此方法,但您需要知道 Family 的好友列表 ID。

var theFriendLists = Api.Get(`me/friendlist`);
var theFriendsListIdForFamily = theFriendLists.Select item  where list_type=="family";

JSONObject jsonObject = new JSONObject();
jsonObject.put("value", "CUSTOM");
jsonObject.put("friends", "SOME_FRIENDS");
jsonObject.put("allow", theFriendsListIdForFamily);
parameters.putString("privacy", jsonObject.toString());
于 2012-01-16T17:22:09.027 回答