在POST到Facebook Graph API时指定隐私

时间:2010-08-25 07:04:10

标签: facebook facebook-graph-api

我想在Facebook上自动发布Notes,并将它们定位到一个组中的一个成员。按目标我的意思是只有特定的Facebook用户才能阅读该笔记。

有没有办法用图API做到这一点?我在旧的REST API中看到,steam.publish方法中有一个“privacy”参数(参见http://developers.facebook.com/docs/reference/rest/stream.publish)。图API中是否有等价物?

5 个答案:

答案 0 :(得分:6)

这是答案。

只需在JSONObject格式的Bundle中包含“privacy”,包括值“SELF”,“ALL_FRIENDS”或“ALLERYONE”。

这是使用android SDK 2.0,现在可以使用3.0了,但是使用graph 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){
    }
}
};

答案 1 :(得分:2)

您可以使用SELF

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 字段可能包含以逗号分隔的网络ID列表   可以看到对象,或者1可以看到用户的所有网络。

     

allow 值设置为时,必须指定 friends 字段    SOME_FRIENDS 并且必须指定以逗号分隔的用户ID和列表   朋友列表ID'可以“看到帖子。

     

如果 deny 字段设置为 friends 字段,则可以指定    SOME_FRIENDS 并且必须指定以逗号分隔的用户ID和列表   朋友列表ID'无法'看到帖子。

在以下链接中搜索隐私以查看所有选项:

https://developers.facebook.com/docs/graph-api/reference/v2.6/post

答案 2 :(得分:0)

是的,有:

http://developers.facebook.com/docs/reference/api/post

您可以修改一个名为“隐私”的字段。

希望有所帮助, -Roozbeh

答案 3 :(得分:0)

http://developers.facebook.com/docs/reference/api/post

没有说明如何指定隐私 以正确的方式

用于各种选项CUSTOM,FRIENDS,NETWORK_FRIENDS

答案 4 :(得分:0)

如果您要从应用发布便笺,则可以设置默认活动隐私,如下所示:

enter image description here

可以在对自己的应用程序进行身份验证时设置,也可以在account settings - > applications中进行设置。