Create a Facebook application like “Friend interview” – Step 2

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.

Get the most popular Phaser 3 book

Through 202 pages, 32 source code examples and an Android Studio project you will learn how to build cross platform HTML5 games and create a complete game along the way.

Get the book

214 GAME PROTOTYPES EXPLAINED WITH SOURCE CODE
// 1+2=3
// 100 rounds
// 10000000
// 2 Cars
// 2048
// A Blocky Christmas
// A Jumping Block
// A Life of Logic
// Angry Birds
// Angry Birds Space
// Artillery
// Astro-PANIC!
// Avoider
// Back to Square One
// Ball Game
// Ball vs Ball
// Ball: Revamped
// Balloon Invasion
// BallPusher
// Ballz
// Bar Balance
// Bejeweled
// Biggification
// Block it
// Blockage
// Bloons
// Boids
// Bombuzal
// Boom Dots
// Bouncing Ball
// Bouncing Ball 2
// Bouncy Light
// BoxHead
// Breakout
// Bricks
// Bubble Chaos
// Bubbles 2
// Card Game
// Castle Ramble
// Chronotron
// Circle Chain
// Circle Path
// Circle Race
// Circular endless runner
// Cirplosion
// CLOCKS - The Game
// Color Hit
// Color Jump
// ColorFill
// Columns
// Concentration
// Crossy Road
// Crush the Castle
// Cube Jump
// CubesOut
// Dash N Blast
// Dashy Panda
// Deflection
// Diamond Digger Saga
// Don't touch the spikes
// Dots
// Down The Mountain
// Drag and Match
// Draw Game
// Drop Wizard
// DROP'd
// Dudeski
// Dungeon Raid
// Educational Game
// Elasticity
// Endless Runner
// Erase Box
// Eskiv
// Farm Heroes Saga
// Filler
// Flappy Bird
// Fling
// Flipping Legend
// Floaty Light
// Fuse Ballz
// GearTaker
// Gem Sweeper
// Globe
// Goat Rider
// Gold Miner
// Grindstone
// GuessNext
// Helicopter
// Hero Emblems
// Hero Slide
// Hexagonal Tiles
// HookPod
// Hop Hop Hop Underwater
// Horizontal Endless Runner
// Hundreds
// Hungry Hero
// Hurry it's Christmas
// InkTd
// Iromeku
// Jet Set Willy
// Jigsaw Game
// Knife Hit
// Knightfall
// Legends of Runeterra
// Lep's World
// Line Rider
// Lumines
// Magick
// MagOrMin
// Mass Attack
// Math Game
// Maze
// Meeblings
// Memdot
// Metro Siberia Underground
// Mike Dangers
// Mikey Hooks
// Nano War
// Nodes
// o:anquan
// One Button Game
// One Tap RPG
// Ononmin
// Pacco
// Perfect Square!
// Perfectionism
// Phyballs
// Pixel Purge
// PixelField
// Planet Revenge
// Plants Vs Zombies
// Platform
// Platform game
// Plus+Plus
// Pocket Snap
// Poker
// Pool
// Pop the Lock
// Pop to Save
// Poux
// Pudi
// Pumpkin Story
// Puppet Bird
// Pyramids of Ra
// qomp
// Quick Switch
// Racing
// Radical
// Rebuild Chile
// Renju
// Rise Above
// Risky Road
// Roguelike
// Roly Poly
// Run Around
// Rush Hour
// SameGame
// SamePhysics
// Save the Totem
// Security
// Serious Scramblers
// Shrink it
// Sling
// Slingy
// Snowflakes
// Sokoban
// Space Checkers
// Space is Key
// Spellfall
// Spinny Gun
// Splitter
// Spring Ninja
// Sproing
// Stabilize!
// Stack
// Stick Hero
// String Avoider
// Stringy
// Sudoku
// Super Mario Bros
// Surfingers
// Survival Horror
// Talesworth Adventure
// Tetris
// The Impossible Line
// The Moops - Combos of Joy
// The Next Arrow
// Threes
// Tic Tac Toe
// Timberman
// Tiny Wings
// Tipsy Tower
// Toony
// Totem Destroyer
// Tower Defense
// Trick Shot
// Tunnelball
// Turn
// Turnellio
// TwinSpin
// vvvvvv
// Warp Shift
// Way of an Idea
// Whack a Creep
// Wheel of Fortune
// Where's my Water
// Wish Upon a Star
// Word Game
// Wordle
// Worms
// Yanga
// Yeah Bunny
// Zhed
// zNumbers