Developing a Facebook Application for absolute beginners – step 5
- October 9, 2009 by Emanuele Feronato
- Filed under Facebook, Php | 13 Comments
Welcome to the 5th step.
Let’s make a small recap:
Step 1: Creation of the application itself
Step 2: Publishing a text on the user’s status
Step 3: Publishing text, links and images on the user’s wall
Step 4: Inviting friends to use the application
Now it’s time to make the application post a notification to users you invite to join the app.
I mean this one:

The script now is this one:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | <?php require_once 'facebook.php'; $appapikey = 'xxxxx'; $appsecret = 'xxxxx'; $facebook = new Facebook($appapikey, $appsecret); $user_id = $facebook->require_login(); $friends = $facebook->api_client->friends_get(); echo "<p>Hello <fb:name uid=\"$user_id\" useyou=\"false\" linked=\"false\" firstnameonly=\"true\"></fb:name>, you have ".count($friends)." friends"; foreach($friends as $friend){ $infos.=$friend.","; } $infos = substr($infos,0,strlen($infos)-1); $gender=$facebook->api_client->users_getInfo($infos,'sex'); $gender_array = array(); foreach($gender as $gendervalue){ $gender_array[$gendervalue[sex]]++; } $male = round($gender_array[male]*100/($gender_array[male]+$gender_array[female]),2); $female = 100-$male; echo "<ul><li>Males: $male%</li><li>Females: $female%</li></ul>"; $message = "has ".count($friends)." friends. $male% of them are male. $female% are female"; $image = array(); $image[type]="image"; $image[src]="http://www.gamemummy.com/facebook/genderz_demo/genderz.png"; $image[href]="http://apps.facebook.com/genderz_demo/"; $attachment = array(); $attachment[name] = "Try the application!!"; $attachment[href] = "http://apps.facebook.com/genderz_demo/"; $attachment[caption] = "{*actor*} has ".count($friends)." friends"; $attachment[description] = "powered by genderz_demo"; $attachment[media] = array($image); $has_permission = $facebook->api_client->users_hasAppPermission("publish_stream"); if(!$has_permission){ echo "<br /><fb:prompt-permission perms=\"publish_stream\">Publish results on your wall!!</fb:prompt-permission>"; } else{ $facebook->api_client->stream_publish($message,$attachment); } if(isset($_POST[ids])){ $message = "is inviting you to use <a href = \"http://apps.facebook.com/genderz_demo/\">genderz_demo</a>!! Try it!"; $ids_list = implode(",",$_POST[ids]); $facebook->api_client->notifications_send($ids_list,$message,'user_to_user'); echo "<br /><br />Thank you for inviting ".count($_POST[ids])." friends to genderz_demo"; } else { ?> <fb:request-form action="http://apps.facebook.com/genderz_demo/" method="POST" type="genderz_demo" content="Hello. Please use my app. <?php echo htmlentities("<fb:req-choice url=\"http://apps.facebook.com/genderz_demo/\" label=\"Try it!!\"") ?>" > <fb:multi-friend-selector showborder="false" actiontext="Send some spam invites to Genderz Demo!"> </fb:request-form> <?php } ?> |
Lines 68-74 are the same we added at Step 4, but they are in an else condition because they will appear only if I don’t have a variable called ids passed with POST (line 58).
This means I show the invite friends selector only if I haven’t already invited some friends, because when I submit an invitation form, an ids variable is passed with an array containing all of the user IDs of the people I invited.
Now let’s see what happens at lines 59-62, executed only once I submitted the request form.
Line 59: writing my note. Notice as my note stats with “is inviting” and not with “Emanuele Feronato is inviting”, because when I specify user_to_user in the note mode at line 61, the API will add my name by itself.
Line 60: transforming an array into a comma separated value string of all of the user IDs of the people I invited.
Line 61: notifications_send takes as input the list created at line 60, the message created at line 59 and sends the note as user_to_user as explained before.
Finally, line 62 thanks the user for sending some spam :)
And the application is finished… during next step I’ll show you how to finetune it in order to make it seem a professional application, then we’ll see the hardest part: monetization.
13 Responses
Leave a Reply
TUTORIAL SERIES:
- Una guida completa al gioco del poker online e una selezione dei migliori casino online.
- casino online
- migliori casino online
- BlackJack online
- casinò online

(8 votes, average: 4.50 out of 5)

Hai lasciato l’api key e l’app key che negli altri tutorial hai tolto, dimenticanza?
ups… :)
Can we make AS3 applications using Facebook API ?
ma dobbiamo lasciare l’app key e l’api key oppure dobbiamo toglierle? perchè se le lascio mi funziona tutto se le tolgo non parte più l’applicazione!
info please.
inoltre, come faccio a inserire un’applicazione flash in index.php? grazie
Hey,
Great stuff.
I can’t get this to work using the iframe. I’m closing all my tags with and have the Scripts linked like it suggests but my permissions aren’t connecting and the boxes (like share) pop up empty. I would like to use the iframe so I can use JQuery instead of class JavaScript/AJAX. This also makes form actions much easier with database connection etc.
Any suggestions? I can post code if necessary…
its really helpful for me … thanks
how can i prompt the Form Dialog before I published in his wall ?
This article will be a good start for biggners.
Hey Emanuele !!!
You simply rock!!!This article was so helpful and so simple and easy to understand that even a novice like me was able to understand and follow it. Anxiously waiting for the “finetuning to give a professional look” and “monetizing” articles.
Thanks :)
Thanks for a great tutorial.
I have a question regarding updates of the wall. When the index.php is updated with a new message, how can the app refresh/update the wall without having the user visiting the canvas page again?
All permissions have been enabled.
Thx
Looks like this code throws an exception error now.. must be a change to Facebook.. throws it in the code, and in your demo.
Very detailed description, a beginner in FA development will make an easy start!
Yes, since March 1st notifications_send is no more available:
http://wiki.developers.facebook.com/index.php/Notifications.send