documentation to create a like button in a facebook app - php

I'm trying to figure out which facebook documentation is relevant to what I want to do.
I want to create a facebook app which I understand is like a glorified iframe pointing to my web server which will serve just 2 html pages. On one of my pages, I want to create a link or button that looks like a big orange race car. When the user clicks on the race car, it fires the "facebook like event", then redirects the user to the second page on my web server. Right now, I do not know how to create the orange race car like button.
I've already set up the facebook app, and it is correctly reading the web pages on my server. I am using PHP.
So my question is any of the following:
a) which page of facebook documentation should I read to learn how to do this
b) does anyone know of any example code I can work with?
**In the past, I had to use oauth to have the user register my app and login before they can do anything with my web app. But this time, my web app IS A FACEBOOK APP, so I'm hoping i don't have to do any of that oauth process. This is why i feel lost in the facebook documentation...i'm not sure which parts are specifically relevant to my facebook app's orange car like button, and which is not.

But this time, my web app IS A FACEBOOK APP, so I'm hoping i don't have to do any of that oauth process.
There you’re wrong already. You will not get any info about the specific user, unless you have them connect to your app first.
Right now, I do not know how to create the orange race car like button.
Using the normal Like button plugin, you can hardly change anything about its appearance at all. (And you are not allowed to, by Facebook policies.)
So your only viable option to have a button of your own choice that triggers a like, is to use the Open Graph built-in like action.
JOHN SAYS - I followed up this question with another - stackoverflow.com/questions/12607458/like-action-for-facebook which has part of the answer to this question

Related

What is Facebook app canvas and page tab?

I have spent a lot of time reading FB dev docs and tutorials but I am still very confused with what canvas app and page tab are and how to use them.
What I am expecting from using FB SDK in my site is to have "continue with facebook" button on login screen , have a couple of share and like buttons and send notifications to facebook if user have allowed that. My site has internal messaging system and I want to notify users that new message or activity has happened in my site. In this way users would not have to check my site every day for activity which is important user experience as I expect rare activity(approx. few activities per week).
I have everything running but after user clicks on notification he is taken to canvas app. FB docs and tutorials focuses on code examples but I have not found anywhere description on what canvas app really is. Without this fundamental understanding I can not complete my notification logic, can not understand the terms involved like "secure canvas url" and basically does not feel confident about user experience(which I would want to make as great as possible).
If I google "what is facebook canvas app" I get "Canvas is an immersive and expressive experience on Facebook for businesses to tell their stories and showcase their products.". Apparently from comment below thats something else...
I would appreacite If someone could explain in plain word and maybe example what is canvas app and how should I use if taking into account that my main goal is to notify users about acitivity in my site to their fb account.
I am using CI framework PHP SDK v5.
Background
In Facebook, you create "apps" that run on "platforms". As a quick, very simplified summary, the three primary types of "platforms" that apps can run are:
A website that you host and control, but integrated with the Facebook Graph API (has Facebook Login, posting etc), but otherwise looks like a normal website. You host these on your own servers.
A website designed to sit inside an iFrame on the Facebook Platform. These apps will also generally interact with Facebook Graph. You still host them on your own servers but you have the added advantage that but can get limited information about the user when the page loads.
Stand alone programs (including mobile applications) that also interact with the Facebook Graph.
What you are talking about is the second of these - the iFrame on Facebook.
Facebook provide two ways to embed the application iFrame:
one is a canvas app. This has minimal surrounds for Facebook Header, Footer and a few ads on the right. It maximises your space. (e.g. https://apps.facebook.com/candycrush/?fbs=-1&fb_appcenter=1)
the other is a "page tab" (https://developers.facebook.com/docs/pages/tabs). This is smaller and designed to sit in a company's "Facebook Page" so has less space. As a marketer, however, it keeps everything more branded to your company. (Example: https://www.facebook.com/NutellaANZ/app/595447743881506/)
Note that a single app can run across all the above - canvas, a page tab and a stand-alone HTML page. With some shifting of the API, you can also wrap the same code for mobile and put on the app stores. A user can log in on your mobile app and you can have them logged in on websites and vice-versa (within some limits, but you'll need to explore those).
Games Only?
You are right in that most of the Facebook docs relating to apps refer to games.
Indeed a good place to start is https://developers.facebook.com/docs/games/gamesonfacebook which is where help leads you for Canvas Apps now.
But it doesn't have to be a game - so long as you're using the APIs anything will work. As you mention PHP, have a look at https://developers.facebook.com/docs/php/howto/example_access_token_from_canvas - no mention of a game, but is how you get information from the iFrame in PHP. (There's a lot more reading to do!).
Reading notifications
When clicking on the notification, Facebook will add parameters to the URL. Some of these are determined by the notification (see https://developers.facebook.com/docs/games/services/appnotifications) and others will help you get information about the user (https://developers.facebook.com/docs/reference/login/signed-request, https://developers.facebook.com/docs/php/SignedRequest/5.0.0).
So use this information server-side to work out who the user is and how you want to handle the user. But what experience you want to give the user once you're in the Facebook eco-system is up to you.

Facebook App Insights don't reflect changes at likes and comments

I'm trying to develop a Facebook App that works using Unity3D as front-end but using a PHP Web server to do the Facebook request saving the private key there.
I tested various things like uploading photos and comments an then it get reflected the new App Insigths of the App as Stories Published.
The thing I can't achieve is to see the Likes and Comments of those Stories, it remains 0.
¿There is something that I don't understand about the Likes/Comments there, or I'm doing something bad?
Thank you all.
P.D: Sorry about my English ^^'
Edit:
I can't provide example code of what i've done but I can explain it.
Actually my front-end do get requests to a backend PHP server that do the requests to Facebook.
When a user want to log in the server return the login url in a string and the front-end launches a Internet navigator (in my case is Google Chrome).
The callback url given to Facebook go to a site that closes automatically the navigator and putting in first plane my front-end.
From there you can do the request to the back-end to publish stories in Facebook and then log-out
Actually this is what my application do and it works. The only problem is that the comments and likes that those stories got are not reflected in the App Insights section.

Invite friends to facebook app (not a game) preferably using PHP

I'm wondering if it is possible to allow a user to invite friends to join my app, even though it is registered as a fitness app and not a game through facebook. Does this even matter?
I'd like to use the facebook requests dialog, but I am being tripped up by the wording in the info section of this page: http://goo.gl/zfx4R where it says that the request dialog is only available to games on facebook.com.
If the requests dialog is not the answer, how should I go about allowing a user to invite their friends? If there is a PHP solution I'd prefer it.
Thanks for the help in advance
As far as I know, there are no features which are restricted to the "type" of app, so game versus app should make no difference.
You can open the FB.ui({method: 'apprequests'}) Facebook Javascript dialog on any web page, the app doesn't need to be in a canvas or page tab. The wording may be confusing, but what is meant is that, when a user does accept an invitation, they will be sent to the app canvas.
This means that you will need to configure your Facebook app to have a namespace (apps.facebook.com/<namespace>) and you will need to handle users coming from invitations at that point. What you do with them afterwards is up to you, you could redirect them to your website if you wish.
You should be aware that the Facebook Requests process is deliberately quite cryptic to avoid gaining information from users who don't want to be involved in your app. Unless you have a specific reason to track invitations, I suggest using the FB.ui({ method: 'feed'}) dialog with a target_id.
Because of this, there isn't and will not be a way in PHP to perform this. You will need to load the JS SDK onto your page and invoke the dialog, then allow the user to make their decision (whether using the 'feed' or 'apprequests' dialog).

Facebook like button and OAuth Access

I am connecting to the Facebook API using HybridAuth on the server side (backend is written in PHP). This is for a SaaS publishing application that is hosted on our servers. I understand the mechanics of OAuth and that once I accquire the appropriate permissions from the user, I can write and read from the Open Graph API, which in theory will allow me to do almost anything.
The problem is that I would like to use some of Facebook's social plugins. In particular, I would like to implement the like button so that it automatically appears for each blog post, article and page.
The problem is that the like button and the various Facebook plugins require an app_id. I would prefer not requiring users to add the developer app to their account and creating an app to get an app_id as it can be a confusing process for non-developers.
Is there anyway we can create or retrieve an app_id from open graph (which we can store and use to generate the like buttons and other facebook widgets)?
With the migrations, I understand that each liked URL will not have it's own page. Once the user clicks a like button on your site, he automatically likes your page. However, let's say I have a page called http://www.mystore.com/products/some-awesome-product and there are other similiar pages, all with a like button. Is it possible that when clicking like, the user automatically likes our Facebook page, but when an item is published in their news feed for the like, the URL links to that specific product? Effectively, is there a way for users to like multiple pages from my site?
Update: It looks like we can generate app_ids programmatically with the create application API in the legacy REST API. However, this does not seem to be an option with the graph API.
Seems like we cannot programatically create an app_id for an account. This is not an issue, as we will just create a small guide to guide our users through creating an app and submitting the app_id to us using a form. Not perfect, but should be easy to implement.
As for URLs, liking something will not automatically like your Facebook page. If href is blank, the current page will be liked. If you set your facebook page in the href parameter, then your facebook page will be liked.

How to programmatically "press" a 'Like' button through a Facebook Application?

I'm developing this Facebook Application and I was wondering if it's possible (and how) to programmatically, through the Facebook PHP Graph API, press some 'Like' button on some page?
Of course, this is optional on my application... I'm still not ready to really explain what application I'm doing, but it would be interesting to code such a feature.
Is it possible somehow?
By your description it sounds like you're trying to get a user to like something without the users knowingly clicking a like-button. This sort of interaction is not condoned by Facebook, I think. There are various black-hatty ways to accomplish this though, one fairly elaborate one is descriped here: http://www.liquidrhymes.com/2010/08/25/smoking-hot-bartender-is-some-smoking-hot-facebook-spam/
UPDATE Sorry, I might be wrong. If you get stream_publish extended permissions from the user, you might be able to like posts on their behalf by doing a POST to /POST_ID/likes. See Publishing to Facebook in http://developers.facebook.com/docs/api
You cannot do this. Facebok wont let you do a POST to /POST_ID/likes, you can only do a get request to retrieve their likes. What you are trying to do is a violation of facebook's TOS. I would suggest just adding a like button and "forcing" them to like before they continue with your application. However, in my opinion even that is kind of silly because they can instantly go unlike it after they have used your application.
i was looking for the same thing, but not to force a user into liking something, but actually for their own protection.
here is where i come from: on a web site (maybe on multiple pages) there is an "I Like" button, implemented as described by facebook.
each time a user goes to that page, the browser will make a request to facebook, throught the iframe that contains the button, providing all the info that we are used to from a web server log file.
if the user has in the past logged in facebook and not cleared the cache. the request will also contain the cookie indentifying the facebook user.
so even more then analytics, facebook know all about the user activity on those pages.
so i wanted the user to only give this info when they decide to.
my solution was to have a button (as graphic only) on the page. when the user clicks it a new frame should open and only there the facebook code should be executed.
obviously on the new frame i could not put the normal "i like" code, since that would require a 2nd click for the user. at this point i would need the "programmatically clicking of the i like button".
it is not an opengraph solution, but it works: the frame just does a redirect to
http://www.facebook.com/share.php?u=URL

Categories