Pubblicazione in un elenco di amici specifico di Facebook utilizzando l'SDK Android di Facebook
-
28-10-2019 - |
Domanda
Sto postando con successo sulla bacheca di Facebook, ma desidero che l'utente possa scegliere se desidera pubblicarlo in un elenco di amici specifico, ad es.Conoscenti, famiglia ecc.
Il mio codice restituisce questo errore:
{"error":{"message":"(#100) privacy must contains a valid privacy 'value'","type":"OAuthException"}}
Ho aggiunto l'attributo "privacy" e gli ho assegnato il valore di "Famiglia", ma non funziona, ma se rimuovo l'attributo della privacy, il post in bacheca ha successo
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();
}
Soluzione
Il campo del valore può specificare una delle seguenti stringhe: TUTTI, ALL_AMICI, RETI_AMICI, AMICI_OF_AMICI, PERSONALIZZATO.
Il campo amici deve essere specificato se il valore è impostato su PERSONALIZZATO e contengono una delle seguenti stringhe: EVERYONE, NETWORKS_FRIENDS (when l'oggetto può essere visto da reti e amici), FRIENDS_OF_FRIENDS, ALL_FRIENDS, SOME_FRIENDS, SELF o NO_FRIENDS (quando l'oggetto può essere visto solo da una rete).
Il campo allow deve essere specificato quando il valore friends è impostato su SOME_FRIENDS e deve specificare un elenco separato da virgole di ID utente e ID elenco di amici che "possono" visualizzare il post.
Prova invece questo, ma dovrai conoscere l'ID delle liste di amici per Famiglia.
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());