Talking about Facebook and Php.
In step 1 you learned how to authenticate and select a random friend of yours.
In this second part you will learn how to get more information about your friends and how to post the answer on their wall.
This is what you will get:
and once you hit “Answer and publish” you will post on your friend’s wall this way:
You need to know how cURL works. I may consider publishing a tutorial about cURL if I have enough requests.
Let’s jump straight to the code:
'157934074246374','secret'=>'onceiwasapornsuperstar','cookie'=>true,'domain'=>'gamesalsa.com'));
$session = $facebook->getSession();
if(!$session){
$url = $facebook->getLoginUrl(array('canvas'=>1,'fbconnect'=>0,'req_perms'=>'publish_stream','next'=>'http://apps.facebook.com/about_you_game/','cancel_url'=>'http://apps.facebook.com/about_you_game/'));
echo "Redirecting to permission request...
";
echo "";
}
else{
if($_POST[to_do]=="Answer and publish"){
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, "https://graph.facebook.com/$_POST[user]/feed");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1) ;
curl_setopt($ch, CURLOPT_POSTFIELDS, "access_token=$session[access_token]&message=".urlencode("Do you think $_POST[name] likes this app ?")."&link=".urlencode("http://apps.facebook.com/about_you_game/")."&name=".urlencode($_POST[answer]));
$result = curl_exec($ch);
curl_close($ch);
}
$friends = $facebook->api('me/friends');
$number_of_friends = count($friends[data]);
$random = rand(0,$number_of_friends-1);
$friend_id = $friends[data][$random][id];
$friend_name = $friends[data][$random][name];
$img = "http://graph.facebook.com/$friend_id/picture?type=large";
}
?>
Do you think likes this app?
Obviously I won’t comment HTML, so let’s dive into php exploring the new lines not already explained in step 1.
Line 10: getting the login url with some new parameters:
next
: the url to go to after a successful login
cancel_url
: the url to go to after the user cancels
req_perms
: comma separated list of requested extended perms
I am asking for publish_stream
permission. It enables your application to post content, comments, and likes to a user’s stream and to the streams of the user’s friends. That’s what I need to publish something on my friends’ wall.
You can find the full docs about permissions at this official page.
Line 15: I am about to publish the answer about a random friend if the user clicked on “Answer and publish” button (line 43)
Line 16: initializing a cURL session
Line 17: setting the URL where to send the cURL request
Line 18: saving the result of the cURL session in a string
Line 19: setting cURL method to POST
Line 20: the core of the script: the variables to be passed in POST
.
access_token
: the authorization token.
message
: the URL encoded message (“Do you think xxx likes this app?”)
link
: the link to the application
name
: the answer to the question
Line 21: executing the cURL session
Line 22: closing the cURL session
The big profile image on the left of the question can be obtained at line 29.
Test the application at this page.
Next time, generating and saving random questions.
Never miss an update! Subscribe, and I will bother you by email only when a new game or full source code comes out.