Programatically add tab to fan page [duplicate] - facebook

This question already has answers here:
Add a Tab to a Company's Page - Programmatically
(2 answers)
Closed 9 years ago.
I have a site where people can log in and link their FB fan page. When they link their fan page, I save the pageId and an auth token, which I then pass to FB API to post to their wall.
What I would like to be able to do is have a button on my site which, when clicked, would add a new tab that is essentially an iframe with a url to their profile page on my site.
Looking around, I've only seen examples that reference an application Id. I get the impression that this application Id is not the id of my application, but that instead that each user needs to create an application of their own, and then I can set the page url of that application, which is way too technical for my audience.
Preferably, the entire process can take place within my site and the call would be something like:
{fbEndPoint}/newTab?authinfo={their token}&pageId={fbPageId}&url={urlToTheirProfilePageOnMySite}

To answer my own question...
What I wanted to do was have a way of knowing what custom page from my site to display when the tab was selected. I figured that when the tab was added, I needed to provide the URL to their profile page on my site. What I did not realize, was that when adding a tab to a fan page, what is really happening is that my app is being added to the tab and the URL that will be displayed in the iframe is the "Page Tab Url" from my app settings.
When someone visits the tab, Facebook provides me with the page Id of where the app is being viewed in the signed_request parameter. Using the pageId form the provided signed_request param, I can then look up which custom page to show on my site, since I know which member installed my app in the provided pageId.
Hope that helps someone!

Related

Check if visitor of my website likes a facebook page

I am in the process of making a band website. I have a download of a song but I want it only to be available to the user if they have liked the bands Facebook page. I am aware there are similar questions to this already on here. I have tried some of them and they don't work, also none of them are very clear. Thank you for your help.
There are more than enough results which answer your question, for example Create Like-Gate for page
The most simple way to create this is using a Page Tab app (https://developers.facebook.com/docs/appsonfacebook/pagetabs/) and parsing the signed_request (https://developers.facebook.com/docs/reference/login/signed-request/) Facebook is sending when the page Tab is accessed.
The page object within the signed_request contains a field called liked which indicates whether the actual user liked the Page or not.

How to migrate Fanpage with App? [duplicate]

Now that Facebook has depreciated the landing pages for apps, how do I get my app to point to the Fan page for it's landing page?
I've checked under the Advanced tab and contacts -- but there's no place I can see to list my Fan page as being linked to my application.
According to this blog post from December, new apps can create a new Fan page, but there's no information on how to do it for existing pages -- they just say that "it will be linked automatically." Unfortunately it was not -- when you post something from our app onto your wall, the link takes you to our website rather than our Fan page.
I'd love for that link to take you to our fanpage again, but I seemingly can't find any documentation on this.
It is possible. I had the same problem. What you need to do is the following:
Categorize your existing page under "App Page" (found under "Brands & Products").
Change your page name to mach your App name.
Go to your App and select "App Details"
Under "Contact Info" you will find "App Page". There you will be able to create a new page or if all went well, select your page from a list.
I found the info in the little question-mark next to "App page".
It is possible to add the application to any page you administer. This can be achieved from solutions mentioned below:
Solution 1
http://facebook.com/add.php?api_key=[YOUR_APP_KEY]&pages=1&page=[YOUR_PAGE_ID]
YOUR_APP_KEY You can get it from application settings, its App Id
YOUR_PAGE_ID You can get it through Graph Explorer https://graph.facebook.com/[PAGE_NAME]
Solution 2
https://www.facebook.com/dialog/pagetab?app_id=[YOUR_APP_KEY]&next=[REDIRECT_URL]
YOUR_APP_KEY You can get it from application settings, its App Id
REDIRECT_URL Any URL you want to redirect back to after adding the tab
Official Solution
Answer from #Dvir Levy is the official solution from Facebook. The issue with that approach is that we mostly can not follow that solution. Suppose we had to add an application tab to a brand page like 'ABCXYZ', if we follow that answer then we had to change the brand page name, and we can't do it, brands/clients we work for doesn't allow these changes.
Due the recent changes on the Facebook UI, some options have changed or are under a different place.
I would like to share the up to date way to achieve this.
On your page
Access the About section
Click on Edit Page Info on the top right side.
Set one of your categories to App page
PS: May be needed your page and app share the same name, but can't confirm this.
On your app
Access your app from the Facebook Developers apps panel.
Access Settings on the left side menu.
Set the category to Apps for pages and hit Save. [#JohnMc mentioned this has to be the only category selected.]
Open the Advanced section and find the App Page block.
Under Existing page select your page and hit Save.
All set!
Note: If you remove the link between the page and the app you won't be able to link them again.
Edit: As #John Mc pointed out in the comments, App page has to be the only category selected.
Happned to me. You need to add yourself (your developer account) as manager/admin of the page. Then it will recognize the link between you and the page and the app will show the app page so you'll be able to choose it.
This is possible.
Go to you business page, add yourself as a managed (make sure you have liked the site first)
Then refresh the App Details developers page.
Select the business app page from the App page contact section.
Note the Business page has to be the Brands & Products : App Page, and the same name as the App.
Here's how to add a tab to a page.
https://developers.facebook.com/docs/reference/dialogs/add_to_page/
I use the direct URL Method. Go to your page and then type the following into the address bar of your browser.
https://www.facebook.com/dialog/pagetab?app_id=YOUR_APP_ID&display=popup&next=YOUR_URL
Where YOUR_APP_ID is the app id shown in the app configuration page, and YOUR_URL is the page you want to to be redirected to once you close the dialog.
In the Facebook app config settings will be Site URL. This is the place where it's currently going, correct? So have your marketing people make a "pretty" landing page for the app, and you can change your app settings to point to the pretty landing page. Maybe all that landing page is a redirect to your Facebook fan page.

How to link a Facebook app with an existing fan page

Now that Facebook has depreciated the landing pages for apps, how do I get my app to point to the Fan page for it's landing page?
I've checked under the Advanced tab and contacts -- but there's no place I can see to list my Fan page as being linked to my application.
According to this blog post from December, new apps can create a new Fan page, but there's no information on how to do it for existing pages -- they just say that "it will be linked automatically." Unfortunately it was not -- when you post something from our app onto your wall, the link takes you to our website rather than our Fan page.
I'd love for that link to take you to our fanpage again, but I seemingly can't find any documentation on this.
It is possible. I had the same problem. What you need to do is the following:
Categorize your existing page under "App Page" (found under "Brands & Products").
Change your page name to mach your App name.
Go to your App and select "App Details"
Under "Contact Info" you will find "App Page". There you will be able to create a new page or if all went well, select your page from a list.
I found the info in the little question-mark next to "App page".
It is possible to add the application to any page you administer. This can be achieved from solutions mentioned below:
Solution 1
http://facebook.com/add.php?api_key=[YOUR_APP_KEY]&pages=1&page=[YOUR_PAGE_ID]
YOUR_APP_KEY You can get it from application settings, its App Id
YOUR_PAGE_ID You can get it through Graph Explorer https://graph.facebook.com/[PAGE_NAME]
Solution 2
https://www.facebook.com/dialog/pagetab?app_id=[YOUR_APP_KEY]&next=[REDIRECT_URL]
YOUR_APP_KEY You can get it from application settings, its App Id
REDIRECT_URL Any URL you want to redirect back to after adding the tab
Official Solution
Answer from #Dvir Levy is the official solution from Facebook. The issue with that approach is that we mostly can not follow that solution. Suppose we had to add an application tab to a brand page like 'ABCXYZ', if we follow that answer then we had to change the brand page name, and we can't do it, brands/clients we work for doesn't allow these changes.
Due the recent changes on the Facebook UI, some options have changed or are under a different place.
I would like to share the up to date way to achieve this.
On your page
Access the About section
Click on Edit Page Info on the top right side.
Set one of your categories to App page
PS: May be needed your page and app share the same name, but can't confirm this.
On your app
Access your app from the Facebook Developers apps panel.
Access Settings on the left side menu.
Set the category to Apps for pages and hit Save. [#JohnMc mentioned this has to be the only category selected.]
Open the Advanced section and find the App Page block.
Under Existing page select your page and hit Save.
All set!
Note: If you remove the link between the page and the app you won't be able to link them again.
Edit: As #John Mc pointed out in the comments, App page has to be the only category selected.
Happned to me. You need to add yourself (your developer account) as manager/admin of the page. Then it will recognize the link between you and the page and the app will show the app page so you'll be able to choose it.
This is possible.
Go to you business page, add yourself as a managed (make sure you have liked the site first)
Then refresh the App Details developers page.
Select the business app page from the App page contact section.
Note the Business page has to be the Brands & Products : App Page, and the same name as the App.
Here's how to add a tab to a page.
https://developers.facebook.com/docs/reference/dialogs/add_to_page/
I use the direct URL Method. Go to your page and then type the following into the address bar of your browser.
https://www.facebook.com/dialog/pagetab?app_id=YOUR_APP_ID&display=popup&next=YOUR_URL
Where YOUR_APP_ID is the app id shown in the app configuration page, and YOUR_URL is the page you want to to be redirected to once you close the dialog.
In the Facebook app config settings will be Site URL. This is the place where it's currently going, correct? So have your marketing people make a "pretty" landing page for the app, and you can change your app settings to point to the pretty landing page. Maybe all that landing page is a redirect to your Facebook fan page.

Facebook page get user like status

I tried googling & checking stackoverflow for the possible solution but haven't found any yet, so would like to bring it up here again.
I have a Facebook page, page has multiple tabs, and one of the tab has a Facebook App (accessed only through the tab, redirect the http://apps.facebook.com/myapp to the page tab)
I have some content (say non-fan content) to be displayed to the user before he likes the page.but, I don't have any way to check if the user has liked the page unless he adds the app & fb documentation has stuff that can give me the required like FQL page_fan, url_like, api(/me/likes/FACEBOOK_PAGE_ID) but each one of this needs an accesstoken (which I cannot get before the user adds the app).
some of the posts on stackover flow says that is not possible without getting the user to add the app. but there are apps like static html, static iframe & others which provides this functionality, how ?
Please advise.
Facebook will POST a signed_request to your server when the user opens the page tab.
This is what you get when you parse the signed_request:
{
"algorithm":"HMAC-SHA256",
"issued_at":1309468031,
"page":{
"id":"xxxxxxxxxxxxxxx",
"liked":true,"admin":true
},
"user":{"country":"fr","locale":"en_US","age":{"min":21}
}
The important part is "page.liked" where you see if the user likes the page.
No permissions and no app authorization is needed for this to work.
Search the web about parsing the signed_request in your favorite web programming language i.e. php.

How to add my facebook app to my fan page?

I'm new to facebook app development and i cant seem to figure this out. I have a simple app i made (an iframe website) that i want to add to a tab on my facebook page. When i try to click on the + tab to add it to my page i only have a few options of youtube, events, fbml... When i do a search absolutely nothing comes up unless i search for those items i just mentioned before (youtube, events, fbml).
Type this into your browser's url bar with the appropiate ids. (I already assume you have configured the app settings for page tab urls,etc).
https://www.facebook.com/dialog/pagetab?app_id=YOUR_APP_ID&next=YOUR_URL
See https://developers.facebook.com/docs/appsonfacebook/pagetabs/ for a full explanation.