Posting to a friends wall on facebook privately using graph api - facebook

I wanted to post a feed to a friends wall from my app and set it as private, which is viewable to the logged in user and the friend.
I want to do this using the new Graph api, I saw that if I set the "to" parameter in the feed post, it will be posted to the users friend wall.
I found a code here:
http://forum.developers.facebook.net/viewtopic.php?id=56458
(Posted by VovaOnline)
(link is dead, as facebook has taken down the forum)
$result = $facebook->api('/me/feed', 'POST', array(
'from' => array(
'name' => 'Vladimir Ageenko',
'id' => '100001308281502'
),
'name' => 'TEST NAME',
'caption' => 'Test Caption',
'description' => 'Test Description',
'message' => 'This is test.',
'privacy' => array(
'description' => 'Vladimir Sergeevich',
'value' => 'CUSTOM',
'friends' => 'SOME_FRIENDS',
'allow' => '100001338940933'
)
));
I am setting the post type as "link".
Can anyone tell me what is wrong in this code. One thing I know that "from" field has to be "to" and it has to be passed in a "data" variable. I am not sure how to do it.
Can any one help me?

You must encode privacy array, try this:
$privacy = array(
'description' => 'Vladimir Sergeevich',
'value' => 'CUSTOM',
'friends' => 'SOME_FRIENDS',
'allow' => '100001338940933'
);
$result = $facebook->api('/me/feed', 'POST', array(
'from' => array(
'name' => 'Vladimir Ageenko',
'id' => '100001308281502'
),
'name' => 'TEST NAME',
'caption' => 'Test Caption',
'description' => 'Test Description',
'message' => 'This is test.',
'privacy' => json_encode($privacy)
));

I don't think Facebook allows you to do this currently. Look at the graph API docs on Posting:
http://developers.facebook.com/docs/reference/api/post/
it says on privacy:
"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. "
I interpret this to mean that if you post on someone else's wall (feed), privacy is out of your control.

From now on it's not possible to post on user's friend wall due to February 6, 2013 breaking changes:
https://developers.facebook.com/roadmap/completed-changes/
Removing ability to post to friends walls via Graph API We will
remove the ability to post to a user's friends' walls via the Graph
API. Specifically, posts against [user_id]/feed where [user_id] is
different from the session user, or stream.publish calls where the
target_id user is different from the session user, will fail. If you
want to allow people to post to their friends' timelines, invoke the
feed dialog. Stories that include friends via user mentions tagging or
action tagging will show up on the friend’s timeline (assuming the
friend approves the tag). For more info, see this blog post.

Related

Facebook API - post/share activity from my app to users wall

I'm creating an facebook app for kart racing. I've users registrated with Facebook, with publish_actions scope.
This gives me an opportunity to post to his wall his results, until the access token expires (2 hours).
My clients would need to post a message or share a link or share an activity everytime the user finishes the race.
The code I use now is:
$config = array(
'appId' => 'xxxx',
'secret' => 'xxxxx',
'allowSignedRequest' => false // optional but should be set to false for non-canvas apps
);
$facebook = new Facebook($config);
if($user_id) {
// We have a user ID, so probably a logged in user.
// If not, we'll get an exception, which we handle below.
try {
$ret_obj = $facebook->api('/'.$user_id.'/feed', 'POST',
array(
'link' => 'www.example.com',
'message' => 'Posting with the PHP SDK!'
));
}
Is there other permission I need to get to be able to post somehow to users wall, or share link? How can this be achieved?
Edit:
Just to be more specific, the kart racing isn't a facebook online game, it's real world kart racing, and I would like to post the racer result to his wall somehow after the end of the race.

How place our own links in facebook wall message

I am building a facebook app, in which I am writing user wall using face book graph api.
Now I would like to include more than 1 links in the message . Is it possible,how can I do it.
This is my code
$facebook->api('/'.$uid.'/feed', 'post', array(
'message' => 'Dear friend, I have given '.$input['rate']." to the movie". $moviedetails['ftitle']. "from ReelReview",
'name' => $moviedetails['ftitle'],
'description' => $moviedetails['description'],
'caption' => 'ReelReview - the best movie review app',
'picture' => 'http://site.com/Movie.jpg',
'link' => 'http://mysite.com'
));
Now I am trying to include some links in the message and description,
Thanks in advance
You can only have one 'link' per wall post , however you could include several links in your description.
The difference is that the 'link' property will be the link that facebook scans for information, and displays images and so forth.
The links in the description will look like in a normal message.

Multiple posters on page

I have a question, It might be found somewhere but I couldnt find a thread for it so if there is one, please post the link.
I admin a page that is a group of several other business areas. I want to post on one page with different icons and names, can that be done? Like different admins but administered by one person/account?
Possible?
What you are going to want to do is use a "Page access_token". To get this you will have to create an application and grant it the manage_pages permission.
You should see in the Authentication Documentation a section called "Page Login".
You can grant your application the manage_pages permission by going to this URL:
https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&scope=manage_pages&response_type=token
Don't forget to substitute YOUR_APP_ID and YOUR_URL with the correct values for you application and URL. (the URL can be any URL - it is where Facebook will send you after you close the Dialog). You will see a dialog that looks something like this :
Once you have the correct permission, you'll want to make a call to this URL :
https://graph.facebook.com/me/accounts?access_token=TOKEN_FROM_ABOVE
You will get a response similar to :
As you can see from the image, you will receive a list of all the pages that the user administers along with an access_token for each page.
You use this access_token to make posts on behalf of the page. Since you have not stated what programming language you are using I will give an example in php.
In php, posting to the page would look something like this :
$facebook->setAccessToken(ACCESS_TOKEN_YOU_RETRIEVED_EARLIER);
$attachment = array('message' => 'this is my message',
'name' => 'This is my demo Facebook application!',
'caption' => "Caption of the Post",
'link' => 'http://mylink.com',
'description' => 'this is a description',
'picture' => 'http://mysite.com/pic.gif',
'actions' => array(array('name' => 'Get Search',
'link' => 'http://www.google.com'))
);
$result = $facebook->api('/PAGE_ID/','post',$attachment);
Hope this helps!
Happy coding!

Posting on User's friend's wall with Facebook

Is there any way to post something to a user's friend's wall from that user in my facebook app?
Example: A user of my facebook app answers a question about one of his friends. I want a small message to be posted to the wall of that friend saying 'Bob answered a question about you...'
Is that possible? If so, how?
It seems that this is possible, the following code is working:
$result = $facebook->api('/$friendsUserId/feed', 'POST', array(
'name' => 'TEST NAME',
'caption' => 'Test Caption',
'description' => 'Test Description',
'message' => 'this is a test.',
));
print_r($result);
die;

Posting to Friends Wall

In the new PHP SDK is there any way to post to a friends wall?
I have seen several apps do it. Like apps that say "your friend asked you a question", and I'm not even a user of that app. Is there any way to do it?
I am using an FBML canvas. I already have all the users friends, just need to figure out how to post to the friends they select from the list.
Thanks
You can use the facebook api method below, this works with the 3.1.1 SDK:
$publishStream = $facebook->api("/$user/feed", 'post', array(
'message' => "Your Message",
'link' => 'http://example.com',
'picture' => '',
'name' => 'App Name',
'description'=> 'App description'
));
Just replace the $user variable with the user id of your friend.
Yes, as long as you have the publish_stream extended permission
Enables your application to post
content, comments, and likes to a
user's stream and to the streams of
the user's friends, without
prompting the user each time.
As far as publishing goes
http://developers.facebook.com/docs/api#publishing