这绝对是可能的。请阅读Post 文档,尤其是privacy 参数:
包含 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。
注意:此隐私设置仅适用于当前或
指定用户自己的墙。 Facebook 会忽略此设置
墙帖(当用户在朋友 Page 的墙上写字时,
事件,连接到用户的组)。与行为一致
Facebook,所有有针对性的帖子都可以被任何可以看到的人查看
目标的墙。
隐私政策:任何非默认隐私设置都必须是故意的
由用户选择
一个使用 PHP-SDK 的小例子:
<?php
require '../src/311/facebook.php';
$facebook = new Facebook(array(
'appId' => 'APP_ID',
'secret' => 'APP_SECRET',
));
$user = $facebook->getUser();
if ($user) {
try {
$privacy = array(
'value' => 'CUSTOM',
'friends' => 'SOME_FRIENDS',
'allow' => 'XXXXXXX,YYYYYYY' // Change this to your friends ids
);
$params = array();
$params['privacy'] = json_encode($privacy);
$params['message'] = "Special for TWO friends";
$post_id = $facebook->api('/me/feed', 'POST', $params);
var_dump($post_id);
} catch (FacebookApiException $e) {
print_r($e);
$user = null;
}
}
?>
我在这里做了什么:
- 创建了 4 个测试帐户
- 切换到其中之一“芭芭拉”
- 进入我的应用并登录(使用
publish_stream 权限)
- 运行上面的代码,结果:
- 我指定了两个朋友(Ruth 和 Linda)
- 现在我们切换到第四位朋友 (Dorothy) 并检查 Barbara 的墙,然后……确实看不到帖子。 :-)
请注意这里有很多选项,您可以拒绝特定用户、允许网络、允许好友列表...完全由您来自定义value、friends、allow、@ 987654357@ 和 networks 字段。