This is definitely possible. Please read the Post documentation, especially the privacy
parameter:
object containing the value
field and optional friends
, networks
,
allow
and deny
fields.
The value
field may specify one of the following strings: EVERYONE
,
ALL_FRIENDS
, NETWORKS_FRIENDS
, FRIENDS_OF_FRIENDS
, CUSTOM
.
The friends
field must be specified if value
is set to CUSTOM
and
contain one of the following strings: EVERYONE
, NETWORKS_FRIENDS
(when
the object can be seen by networks and friends), FRIENDS_OF_FRIENDS
,
ALL_FRIENDS
, SOME_FRIENDS
, SELF
, or NO_FRIENDS
(when the object can be
seen by a network only).
The networks
field may contain a comma-separated list of network IDs
that can see the object, or 1 for all of a user's network.
The allow
field must be specified when the friends
value is set to
SOME_FRIENDS
and must specify a comma-separated list of user IDs and
friend list IDs that 'can' see the post.
The deny
field may be specified if the friends
field is set to
SOME_FRIENDS
and must specify a comma-separated list of user IDs and
friend list IDs that 'cannot' see the post.
Note: This privacy setting only applies to posts to the current or
specified user's own Wall. Facebook ignores this setting for targeted
Wall posts (when the user is writing on the Wall of a friend, Page,
event, group connected to the user). Consistent with behavior on
Facebook, all targeted posts are viewable by anyone who can see the
target's Wall.
Privacy Policy: Any non-default privacy setting must be intentionally
chosen by the user
A small example using the 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;
}
}
?>
What I've done here:
- Created 4 test accounts
- Switched to one of them "Barbara"
- Went to my app and logged in (with
publish_stream
permission)
- Run the above code and the result:
- I've specified two friends (Ruth and Linda)
- Now we switch to the 4th friend (Dorothy) and check Barbara's wall and... indeed the post is not visible. :-)
Please note that you have a lot of options here, you can deny specific user, allow networks, allow Friends list...it's really up to you to customize the value
, friends
, allow
, deny
and networks
fields.