发布到 Facebook Graph API 时指定隐私
Posted
技术标签:
【中文标题】发布到 Facebook Graph API 时指定隐私【英文标题】:Specify privacy when POSTing to Facebook Graph API 【发布时间】:2010-08-25 07:04:09 【问题描述】:我想在 Facebook 上自动发布笔记,并将它们定位到群组中的单个成员。我所说的目标是指只有特定的 Facebook 用户才能阅读该注释。
有没有办法用图形 API 做到这一点?我在旧的 REST API 中看到 steam.publish 方法上有一个“隐私”参数(参见http://developers.facebook.com/docs/reference/rest/stream.publish)。图 API 中是否有等价物?
【问题讨论】:
我也打算知道答案。天哪,你在 8 月 25 日问了这个问题。 我在链接developers.facebook.com/docs/reference/api/post看到我们不能更改用户的隐私设置... :( 【参考方案1】:这就是答案。
只需在 JSONObject 格式的 Bundle 中包含“隐私”,包括值“SELF”、“ALL_FRIENDS”或“EVERYONE”。
这里使用的是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)
;
【讨论】:
【参考方案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
。如果
value
设置为CUSTOM
,则必须指定friends
字段并且 包含以下字符串之一:EVERYONE
、NETWORKS_FRIENDS
(当 该对象可以被网络和朋友看到),FRIENDS_OF_FRIENDS
,ALL_FRIENDS
、SOME_FRIENDS
、SELF
或NO_FRIENDS
(当对象可以 只有网络才能看到)。
networks
字段可能包含以逗号分隔的网络 ID 列表 可以看到对象,或者 1 代表用户的所有网络。
friends
值设置为时,必须指定allow
字段SOME_FRIENDS
并且必须指定以逗号分隔的用户 ID 列表和 “可以”看到帖子的朋友列表 ID。如果
friends
字段设置为,则可以指定deny
字段SOME_FRIENDS
并且必须指定以逗号分隔的用户 ID 列表和 “无法”看到帖子的好友列表 ID。
在以下链接中搜索隐私以查看所有选项:
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】:如果您从应用发布笔记,您可以设置默认活动隐私,如下所示:
可以在您验证自己的应用程序时设置,也可以在:account settings - > applications
中设置。
【讨论】:
以上是关于发布到 Facebook Graph API 时指定隐私的主要内容,如果未能解决你的问题,请参考以下文章
使用 Python 和 Graph API 发布到 Facebook,权限问题
Facebook Graph API v10 图像上传到页面提要
无法使用 Graph API 将事件导出到 Facebook