Publicar en una lista de amigos específica de Facebook usando el SDK de Android de Facebook
-
28-10-2019 - |
Pregunta
Estoy publicando con éxito en el muro de Facebook, pero quiero que el usuario pueda elegir si quiere publicarlo en alguna lista de amigos específica, p. ej.Conocidos, Familia, etc.
Mi código da este error:
{"error":{"message":"(#100) privacy must contains a valid privacy 'value'","type":"OAuthException"}}
Agregué el atributo "privacidad" y le di el valor de "Familia", pero no funciona, pero si elimino el atributo de privacidad, la publicación en el muro es exitosa
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();
}
Solución
El campo de valor puede especificar una de las siguientes cadenas: TODOS, TODOS_FRIENDS, NETWORKS_FRIENDS, AMIGOS_OF_FRIENDS, PERSONALIZADO.
El campo de amigos debe especificarse si el valor se establece en CUSTOM y contienen una de las siguientes cadenas: TODOS, NETWORKS_FRIENDS (cuando el objeto puede ser visto por redes y amigos), FRIENDS_OF_FRIENDS, ALL_FRIENDS, SOME_FRIENDS, SELF o NO_FRIENDS (cuando el objeto puede ser visto solo por una red).
El campo de permiso debe especificarse cuando el valor de amigos se establece en SOME_FRIENDS y debe especificar una lista separada por comas de ID de usuario y ID de lista de amigos que "pueden" ver la publicación.
Prueba esto en su lugar, pero necesitarás conocer el ID de la lista de amigos para Familia.
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());