Publicar na lista de amigos específica do Facebook usando o SDK do Facebook para Android
-
28-10-2019 - |
Pergunta
Estou postando com sucesso no mural do Facebook, mas quero que o usuário possa escolher se deseja postar em alguma lista de amigos específica, por exemplo,Conhecidos, família, etc.
Meu código está apresentando este erro:
{"error":{"message":"(#100) privacy must contains a valid privacy 'value'","type":"OAuthException"}}
Eu adicionei o atributo "privacidade" e dei a ele o valor "Família", mas não está funcionando, mas se eu remover o atributo privacidade, a postagem no mural foi bem-sucedida
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();
}
Solução
O campo de valor pode especificar uma das seguintes strings: EVERYONE, ALL_FRIENDS, NETWORKS_FRIENDS, FRIENDS_OF_FRIENDS, CUSTOM.
O campo de amigos deve ser especificado se o valor for definido como CUSTOM e contém uma das seguintes strings: EVERYONE, NETWORKS_FRIENDS (quando o objeto pode ser visto por redes e amigos), FRIENDS_OF_FRIENDS, ALL_FRIENDS, SOME_FRIENDS, SELF ou NO_FRIENDS (quando o objeto pode ser visto por uma rede apenas).
O campo de permissão deve ser especificado quando o valor de amigos é definido como SOME_FRIENDS e deve especificar uma lista separada por vírgulas de IDs de usuário e IDs de lista de amigos que 'podem' ver a postagem.
Tente fazer isso, mas você precisará saber o ID da lista de amigos para a família.
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());