Указать конфиденциальность при отправке POST на Facebook Graph API
Я хочу автоматически публиковать заметки в Facebook и настроить их на одного члена группы. По целевому я имею в виду, что только конкретный пользователь Facebook должен уметь читать заметку.
Есть ли способ сделать это с помощью графического API? Я вижу, что в старом REST API есть параметр "privacy" в методе steam.publish(см. http://developers.facebook.com/docs/reference/rest/stream.publish). Есть ли эквивалент в графическом API?
Ответы
Ответ 1
Вот ответ.
Просто включите "конфиденциальность" в Bundle в формате JSONObject, включая значение "SELF", "ALL_FRIENDS" или "EVERYONE".
Это использование Android SDK 2.0 и 3.0 теперь доступно, но способ использования графика api тот же, оставляя комментарий, если вы достигнете любой проблемы:).
public String PostWall(String Message,int Level){
/***********************************************************
* level 0 ==>only me
* level 1==>friend only
* level 2==>public
* level >2 ==>error
***********************************************************/
Bundle params = new Bundle();
params.putString("message", Message);
JSONObject privacy = new JSONObject();
try {
switch (Level){
case 0:
privacy.put("value", "SELF");
break;
case 1:
privacy.put("value", "ALL_FRIENDS");
break;
case 2:
privacy.put("value", "EVERYONE");
break;
}
} catch (JSONException e1) {
}
params.putString("privacy", privacy.toString());
//Step 2 Request
String resp= "";
try {
resp = fb.request("me/feed", params, "POST");
} catch (FileNotFoundException e) {
} catch (MalformedURLException e) {
} catch (IOException e) {
}
try{
resp = new JSONObject(resp).getString("id");
if(enableLog){
Log.d(LOGTAG,"*****POSTWALL END*****");
Log.d(LOGTAG,"RETURN "+resp);
}
return resp;
}catch(JSONException e1){
}
}
};
Ответ 2
для использования php facebook api:
$privacy = array(
'value' => 'SELF' //private
);
$publish = $facebook->post('/me/videos',
array('access_token' => $page_token,
'title'=> $title,
'privacy'=> $privacy,
'source' => $facebook->videoToUpload($fn),
'description' => $desc
));
содержащий поле value
и необязательный friends
, networks
allow
и deny
.
В поле value
может указываться одна из следующих строк: EVERYONE
, ALL_FRIENDS
, NETWORKS_FRIENDS
, FRIENDS_OF_FRIENDS
, CUSTOM
.
Поле friends
должно быть указано, если для параметра value
установлено значение CUSTOM
и содержат одну из следующих строк: EVERYONE
, NETWORKS_FRIENDS
(когда объект можно увидеть сетями и друзьями), FRIENDS_OF_FRIENDS
, ALL_FRIENDS
, SOME_FRIENDS
, SELF
или NO_FRIENDS
(когда объект может быть видимый только сетью).
В поле networks
может содержаться список идентификаторов сети, разделенных запятыми который может видеть объект, или 1 для всей сети пользователя.
Поле allow
должно быть указано, если для параметра friends
установлено значение SOME_FRIENDS
и должен указать список идентификаторов пользователей, разделенных запятыми, и идентификаторы списка друзей, которые могут "видеть" сообщение.
Поле deny
может быть указано, если для поля friends
установлено значение SOME_FRIENDS
и должен указать список идентификаторов пользователей, разделенных запятыми, и идентификаторы списка друзей, которые "не могут" видеть сообщение.
Найдите конфиденциальность по следующей ссылке, чтобы увидеть все параметры:
https://developers.facebook.com/docs/graph-api/reference/v2.6/post
Ответ 3
Да, есть:
http://developers.facebook.com/docs/reference/api/post
Там есть поле, называемое конфиденциальностью, которое вы можете изменить.
Надеюсь, что это поможет,
-Roozbeh
Ответ 4
http://developers.facebook.com/docs/reference/api/post
не указывает, как указать конфиденциальность
правильным способом
для разнообразной опции CUSTOM, FRIENDS, NETWORK_FRIENDS
Ответ 5
Если вы публикуете заметки из приложения, вы можете установить конфиденциальность активности по умолчанию, как показано ниже:
![enter image description here]()
Он может быть установлен при аутентификации вашего собственного приложения или в: account settings - > applications
.