I've been seeing this for quite a while now, and am wondering how people achieve it: They create facebook pages, and then require users to like and share the pages in order to see links.
First, the user must be authenticated with your app. You can't force anonymous users to like your page, etc. After they are authenticated the easiest way to do this is just to use the graph api and call https://graph.facebook.com/me/likes (you will need the extended permission user_likes). After that you can just ensure that your page is listed as one of the user's likes and take action accordingly.
I found an answer to my question after spending quite some time googling. Turns out, as usual, that it was simply the matter of picking the correct keywords.
Create the fan page you wish to use
Allow Static FBML application to your page
Set Static FBML tab to show your title, and publish the content there. With static FBML you can 'choose' who you want to show certain content, accomplishing the desired goal.
Here's a code sample:
<fb:fbml version=”1.1″>
<fb:visible-to-connection>
<a href=’http://www.webmastershelpguide.com/’>Webmaster help</a>
<fb:else>Non-fans will see this content.</fb:else>
</fb:visible-to-connection>
</fb:fbml>
Related
I need to create a "contest" page where user will be asked to submit picture.
After that, they should be able to share their picture on FB, Twitter, G+, Pinterest, etc for other people to come and vote.
I want the page to be displayed as a jQuery gallery and whenever people select a thumbnail, the bigger picture open with the associated vote and "share" button.
When a user share an image, I want a specific TITLE & URL associated with that particular image... something like "http://www.mysite.com/contest.html#picture1"... or "http://www.mysite.com/contest.html#picture2"
How is this possible if I only have one page?
I wouldn't have problem if I could use the old "facebook.com/sharer.php" with parameters... but it seems that the Open Graph Protocol is "overiding" the sharer.php parameters....
Works fine with Twitter and Pinterest... I might have the same problem with Google+.
Excuse my bad english, thanks!
Well, set up a (“dummy”) page for each picture, and fill it with the appropriate OG tags … and have your users like that. And then put a JS redirect into that page, so that users following the link when it’s shared on Facebook will get to the “real” address you want them to end up at.
(Btw., IMHO this is what happens too often these days when people think doing everything client-side and client-side only is so “fancy” and that a “good” and “modern” site requires all that AJAX/one-page-only nonsense instead of a real good and working URL structure, and then are not able to handle all that this implies properly …)
The company I'm currently working for wants to create a button that lets people share their order on Facebook after they've paid, but with the deprecation of the "Share" button I don't really know how to do it.
The "Like" button does not seem fit for this. Any ideas, anyone?
There are a few ways to go about this.
You can use the standard sharer. This is good for one-off sharing or in cases where you don't have control or don't want to control how the share is rendered and you want Facebook to handle it.
http://www.facebook.com/sharer.php?u=<url to share>&t=<title of content>
It won't require you to have an app ID but you also won't get a nice control panel for your applications sharing history/insights. You can query and get some information about the URL your sharing though by looking through the open graph.
I.E
https://graph.facebook.com/?ids=http%3A%2F%2Fwww.cnn.com
https://graph.facebook.com/comments/?ids=http%3A%2F%2Fwww.cnn.com
You can set the URL and Title of the content. The sharer will then look at the metadata on the webpage your sharing to determine the contents of the share. More below.
You can also use the Feed dialog. Which comes with more customization options. The Feed dialog is the best option if your integrating sharing as an integral part of the application. I think at minimum you need to include the app_id,redirect_uri and link property. Look through the properties here. You will need an app ID to use this feed dialog and if your using the JS api you need to authenticate the user too. You can also invoke the dialog directly through a direct url where you don't need to pre-authenticate the user.
With either sharing method, you may wish to include custom open graph metatags on your webpage. This way you can influence how the Facebook scraper makes your share. You can set some default (pre-accepted by Facebook) open graph metatags on your page. Or you can create your own set now in the dashboard. In the Open Graph dashboard on Facebook you can customize how Facebook is supposed to read and interact with your metatags.
You can debug your pages open graph metatags by passing your URL through the debugger.
I.E
http://developers.facebook.com/tools/debug/og/object?q=www.cnn.com
This will give you, for example, JSON or an HTML representation of how FB sees the page.
I offered to set up a FB page for our upcoming 30th high school reunion. I went in and created the page, but cannot seem to figure out how to add the "LIKE" button. Everything I have read: Getting Started / Websites https://developers.facebook.com/docs/ as well as the Social Plugins page https://developers.facebook.com/docs/reference/plugins/like/ all seem to begin with the assumption that I have a website. I don't have one.
So my bottom line question is: do I have to CREATE a webpage (outside FB) in order to move ahead with adding the social plugins?
Obviously I am a newbie, have no technical experience but can read and follow directions.
Solutions, O Great Ones?
If you create a page, other users will see a Like button on the page. So, they can like that page and then you can publish posts to it. This is a good way to keep people informed, involved, and engaged.
That's what the plugins are for (to include in html), they are not necessary to use to just have a page.
You might not see the like button because you created it, i'd imagine.
You don't need to have a website in order to use the Social Plugins, but it does help. Otherwise, you need permission to use the HTML on websites / pages you don't own but have access to.
E.g. You can ask your school to add the Social Plugins to their existing website that will let students like the fan page you created.
Facebook has "pages" for many things, like people, companies, etc. But it also has this open graph protocol. My company already has a web site, and we also have a facebook page (i.e. http://www.facebook.com/company)
People can "like" either one. We use a like iframe on the company website that refers to the website URL. I'd like to know if they can be connected such that when someone likes our facebook page, they really like our company's web site.
Or are these always going to be considered two different things?
To elaborate on puffpio's answer, you can have a like button for your existing page on you website by using the existing page's facebook url as the href parameter.
It is essential that you do not put a like button to your url if you do not want your likes split between the two. In this scenario there is no reason to have an open graph object for your page other than to provide correct data when a user shares your url in their feed. It's important to note that these shares also count towards the counter on the like button and as far as I know there is no way to recover them.
You can also use this url as your og:url tag however this will cause the linter to throw errors since the domains do not match.
No. Page and website is something different and you can't force user to like both
They are different things, but a workaround is that the like button on the company's website can be a like button for their page on Facebook with a caveat like 'Like us on Facebook' or something
I want to create fb page,and to force users to like page,and to share if they want to see content of my fb fan page.
So,like that page,share that page,and you can than show content of that page.
You need to "capture" if the landing user on your Page Tab likes the page or not and if not show them different content and encourage them to Like the page to get more!
I've written an in-depth tutorial on how to check if a user is fan of your Facebook page and included a real world examples from a famous Facebook pages!
And just to add to my own article above, another GREAT example is one the "most" popular pages on Facebook Coca-Cola!
Just a side note, you don't force the users....you encourage them!
The closest you could get is to use a Canvas page with a Like Box or something embedded in it. You can listen for the "Like" by waiting for an FB.event.subscribe(edge.create) event in embedded Javascript.
I would caution you to abide by the terms for forcing people to like a page.
"Like" Reward Guidelines
Facebook API Policy