Is it possible to get the Facebook app id on my canvas page?
So I am here: apps.facebook.com/myappspace
and in my index.php I want to get the FB App id now. Is this possible? The only way I figured out was when I can get the signed_request, because a user already authenticated my app.
But let's assume an unauthenticated user visits my canvas page. Any way to get the FB App Id?
P.S.
It's not possible to write it into my php-file, because I use the same code for several Facebook Apps, so I need to find our now what App is used to show individualized content.
In short this is not possible without getting signed_request.
Actually you not really have to place this information in the code, but some configuration files, which should be different for every application instance, have appropriate permissions and without public access for sure.
You can decide which configuration to use based on application hostname/ip (any other way to identify which application it is).
Related
I want to build a dashboard that enables any company to track the social media activity of its competitors.
For example.. let's say you are a small business owner. You would be able to add the 'facebook/instagram page id's' of your 4-5 competitors within the app. The app would retrieve the historical data of your competitors.. and enable you to interactively explore what they are doing. How often they are posting, at the time of the day, what is liked/not liked, etc.
Problem is: Since Cambridge Analytica, Facebook requires app review to allow access to public page data. But how do I show the app.. when I don't have the data to build it?
Does anyone have any remote idea whether the thing that I am trying to build is generally within that would be considered permissible by Facebook?
You can still make your dashboard which will show your Facebook activity.
To get the Facebook page ID of 4-5 competitors. The competitors have to use your app and allow permission to your app for accessing public features.
You have to own a Facebook page. Get OAuth key. For every request to Facebook you will be using this Key. In case of mischievous activity your OAuth key will be blocked.
What you are trying to do is not possible these days and neither permissible by Facebook.
You can build your App already and just use your own Pages for testing - with a Page Token of those Pages. Send Facebook a video how you are using the data in the review process. I have recently got Page Public Content Access approved for that specific use case. Facebook just wants to see how you will use the public content, the App does not need to be 100% finished.
What´s allowed and what´s not allowed: https://developers.facebook.com/docs/apps/review/feature#reference-PAGES_ACCESS
I'm using Facebook::Graph and any time a page is loaded, I would like to detect server-side if a user has liked a certain page or not. I can't find in the documentation how to do this though. Is it possible to do this without sending the user ID to my server-side script? Because I know using the javascript SDK you can check this, but I feel like it might be different with a server-side API.
Not sure what you mean with "anytime a page is loaded"... I guess you mean an page of an App? If so, you need the user_likes permission to be able to get the information on the User's likes.
If you're using a Page Tab App, then you could get this info out of the signed_request which is passed to the App once the User accesses it from the Facebook Page Tab. See https://developers.facebook.com/docs/reference/login/signed-request/ The indicator is in the page.liked field.
I am working on a web based project that allows a user to login using a Facebook login. This part works as expected. However after logging in I want to display non-FB specific content specific to each user. How can I do this efficiently? For testing suppose I want to display a different greeting for each FB user and display a different background after successful login using FB username. Any sample code to play with would be highly appreciated.
I guess it's pretty late to answer yet I would like to. I assume you want to differentiate between the greeting, for example, that gets generated for a core user (one signed up manually through form) and a user logged in using facebook, right? Well, you can store the facebook id of each user and then it would be easy for you to generate messages respectively!
I can't seem to find exactly what I'm looking for. We're trying to build an app to run solely on a Facebook Page. We want to show a landing page if they don't Like the page, and the contest entry form if they do. This functionality works.
Before showing the contest entry form, we'd like to authenticate the user viewing the app so that they can just hit "Enter the contest!" and we can automatically pull a name/email address.
Any of the methods of authentication I've seen described, including through the Facebook Developer docs, don't work at all.
I saw something that said they need to interact with the app first, then you can get the id, but that doesn't work either. I also don't get the page id passed with the signed request.
Its also pretty unclear whether I should be using an iframe or just FBML.
Could anyone point me in the right direction, please? Thanks!
You need to create a fan page and add the FBML plugin to that page, then you will need to insert a short code that will determine if a facebook user has clicked 'Like' or not and by determining that you will decide weather to display the content of the landing page or not (using an iframe). You will probably like to also set the FBML box that you create as the default view for members who didn't press the 'Like' button yet, you can change the default view in your fan page settings.
On the iframe, you will need to use the Facebook API if you want to retrieve any user information from Facebook, for that, you will need to register a new application with Facebook. Go to developers.facebook.com for the API integration and app registration.
Also, what do you mean when you say:
Any of the methods of authentication
I've seen described, including through
the Facebook Developer docs, don't
work at all.
Well, it appears you can't do it that way. The client was very specific in wanting that functionality but we ended up convincing them to go for a redirect to the canvas page to have the app authorized and the contest entered instead.
Let's say I own/control a Facebook page where events are posted. I'd like to display these events on another website (In my case, a WordPress blog, but that's not the important part) on an "Upcoming events" page.
What I'm unsure about is: Is the Facebook API usable "externally" like this? I've downloaded the PHP library and have a demo app running that works from within Facebook (i.e. emitting FBML that facebook.com interprets and displays to the logged-in user), but in my case I want a third party (my web server) to query Facebook every so often, rather than the site visitors directly requesting data (HTML/JSON/etc.) from Facebook itself.
Is this sort of thing possible with the Facebook API? How will my web server authenticate itself? What information do I have to store?
Note: I'm looking for information more at a "sequence diagram" conceptual level, not just asking for code. That part I can figure out myself. ;) Unfortunately, Google and the FB developer wiki have not been entirely forthcoming. What do I need to know so I can start coding?
This is a basic overview of how I've done it for a few of my clients who wanted similar functionality:
Create a pretty basic app that prompts for Extended permissions, specifically "offline_access" and whatever else you need
Store the resulting Session Key in your database with the UID
Create a secure, authenticated webservice for your app which allows you to get the info you need for a UID that you supply, using the session that you've stored in your database
On the website make requests to your app's webservice, being sure to cache the results for a certain period of time and only make a new request to your webservice once the cache has expired (I use 5-10 minutes for most of mine)
So basically your Facebook app acts sort of like a proxy between the website and the user, doing all of the authenticating and requesting using legitimate means.
I've used a webservice because I only wanted to maintain one Facebook app for multiple client's needs. It works like this (in a not-very-awesome ASCII art diagram):
Facebook User 1 \ / Client Website 1
Facebook User 2 --- Facebook App --- Client Website 2
Facebook User 3 / \ Client Website 3
Note: I've only done this for users, not pages, so your mileage may vary.
You can do Events.get with the Facebook API then supply the page/profile ID you'd like to get the events for. Depending on how your page is setup you may have to authenticate, simply use your Facebook account, since you should have access to all the events. oh and make sure you do plenty of caching so your not hitting Facebook on every page load.
AFAIK other than user info, you can't fetch any other data from facebook.
But you can try it other way - say create an app that stores events and other relevant information on a webserver and then your other website can easily access that info.