Facebook like and share create a fanpage - facebook

We are using the facebook like plugin with the share button. The URL points to a resource of our app. For example
http://apps.facebook.com/appname/resources/id
The first time this resource/url is shared or liked, everything works fine. The share for example holds the URL given above.
But if the same resource/url is shared again, an error occurs. Facebook did create a fanpage for that resource like
http://www.facebook.com/pages/appname
So from now on, share/likes refer to that page instead of the resource/url of our app.
The URL we use for the like plugin is correct and always points to the app resource URL. The fbappid in there is correct, too. Furthermore the page of the resource holds open graph meta tags like og:url, also pointing to the correct URL.
The facebook linter/debugger returns URLs to the correct app resource URLs, when checking the liked/shared resource.
Why is a fanpage created instead and the URL exchanged in shares/likes? How to fix it? We want the share to include the URL of the app resource and to increase the like count for that open graph object.

We want the share to include the URL of the app resource and to increase the like count for that open graph object.
If you just want to increase like count fo your OG object, why don’t you link your actual URL, and not a Facebook URL? I mean, your app should be accessible via yourdomain.example.com/something/resources/id, right? So why not like that, since it is the real Open Graph object …?

There is a related facebook bug for this:
http://developers.facebook.com/bugs/240986412684045?browse=search_4fe13eff357e29b43787690
So, apparently there is nothing we could do about it, but wait for facebook to fix it. The alternative would be what CBroe suggested and point to the ressource without using the canvas URL. But this would put the non-canvas URL in the shared message, which is not what we want.

Related

Facebook appends parameters to a url when it is liked

I’ve recently added a Facebook like button to a site of mine and all seems to work fine except that the post on my Facebook wall has a url with a load of parameters appended to the url.
Example: http://domain.com/this-is-a-new-post-to-test-the-url?fb_action_ids=1403388974344336068&fb_action_types=og.likes&fb_ref=sp_facebook_57&fb_source=aggregation&fb_aggregation_id=247881481237582
I have set the open graph meta tag but this does not seem to make any difference.
What I find interesting is that some pages I’ve liked (on a different domain) don’t have these parameters appended to it.
The question is: how to “sanitise” the url on my Facebook wall so it looks like http://domain.com/this-is-a-new-post-to-test-the-url and NOT like http://domain.com/this-is-a-new-post-to-test-the-url?fb_action_ids=1403388974344336068&fb_action_types=og.likes&fb_ref=sp_facebook_57&fb_source=aggregation&fb_aggregation_id=247881481237582
Facebook adds these parameters so that website owners can keep track of where incoming traffic from Facebook originated and can not be removed.

Can an in-app object only be posted through an opengraph action?

I have a page inside a facebook application that is an opengraph object, when I post a custom action on this object to facebook from my app it is posted right, but when I use a facebook social plugin such as like and like that object it is not posted as that object but instead the object of my facebook application is posted on the timeline... so my question here is Can an in-app object only be posted through an opengraph action?
Nope, new OpenGraph object will be created or data will be updated for existing one once Facebook linter crawl your page to get data this will happen in several cases:
OpenGraph action referencing object published
Like button clicked for specific URL
Link to your page shared on Facebook (in direct way or via any dialogs using link, etc).
Your Like button is probably linked not to your real application URL but to URL within Facebook resulting in different Pages parsed by Facebook on Like Button click and OpenGraph action publishing.
I assume that your like button pointing to Application Tab Canvas or Application Page since links to regular application's canvas parsed correctly by Facebook.
Update:
Seems like the issue with OpenGraph tags is related to the fact that your application returning 404 (Not Found status code) for URL you provided and only returns data for HTTP (but not HTTPS) requests. If error code is returned the cached data is preserved and will not be updated until correct status code returned.
Update 2:
As you've provided real URL it's became clear that you get details for your application instead of actual page because of redirect for all unauthorized users, which lead to inability to rich the real OpenGraph data by Facebook linter.
BTW, You should be aware that every OpenGraph object MUST have publicly accessible URL.

Open Graph for iframe app (game)

We've created a simple game as an iframe application for facebook and we now want to use OG to make it more interesting.
The game: A user can challenge a friend and they both have to choose a card - in the end the user with the "stronger" card wins.
We don't have a website for this game - it's just the facebook app. We've read that an OG Object has to be represented by an actual object-page:
'you will now need to create a publicly accessible web page that
represents this object using Open Graph metatags.'
https://developers.facebook.com/docs/opengraph/tutorial/
Is this really necessary? And if not, is there any good tutorial or documentation about that?
We found this post: http://facebook.stackoverflow.com/questions/7771321/open-graph-beta-can-it-be-used-with-facebook-iframe-canvas-application -> is this the solution we're looking for?
It is possible to build an Open Graph app which exists inside Facebook's Canvas.
You still need to create URLs which represent each of your object instances, but they can be of the form:
https://apps.facebook.com/yourapp/foo/bar
https://apps.facebook.com/yourapp/foo
https://apps.facebook.com/yourapp?foo=bar
These map to URLs on your server like:
https://example.com/foo/bar
https://example.com/foo
https://example.com?foo=bar
You can publish actions against the apps.facebook.com urls - these will become your canonical object URLs. But the metadata which describes those objects must be present on your server URLs.
When you publish an action against an object with an apps.facebook.com URL, Facebook will make a request to your underlying server URL to read the metadata. But all links that users see will point to a URL with the domain apps.facebook.com.

Feed dialog to event/fan page says "Sorry, something went wrong." after clicking share

Having some issues with the feed dialog when attempting to post to a event or fan page. In my application I am using the JS API and FB.ui using the method feed.
But for a demonstration you can do it using the feed url too for example:
http://www.facebook.com/dialog/feed?app_id=131727613511269&to=287203454659917&redirect_uri=http://www.timeanddate.com/
After clicking share you get the:
Sorry, something went wrong.
We're working on getting this fixed as soon as we can.
Where:
app_id = your app
to = a event / fan page
redirect_uri = a url you are allowed to redirect to
note that the app has publish_stream permissions. (it also has manage_pages for fan pages)
The app in question by the way is: http://apps.facebook.com/tndcountdown/
Thanks,
Andy
EDIT:
An Example taken straight from the documentation:
http://www.facebook.com/dialog/feed?app_id=123050457758183&link=http://developers.facebook.com/docs/reference/dialogs/&picture=http://fbrell.com/f8.jpg&name=Facebook%20Dialogs&caption=Reference%20Documentation&description=Using%20Dialogs%20to%20interact%20with%20users.&message=Facebook%20Dialogs%20are%20so%20easy!&redirect_uri=http://www.example.com/response&to=287203454659917
just replace to=287203454659917 with an event.. (make a test one like it did there)
A few issues I've run into will dialog is that Facebook tries to fill in any missing data. So if you don't provide a description and caption, Facebook will try to scrape the page to get that content. Depending on how the page responds to the "scraping" Facebook will error out. I always make sure I include at least a space for those fields.
It seems the feed url you provided is similar to what is in the documentation. But the demo in the documentation has extra parameters.
I'm about to add page support to my Facebook app, which does the same thing as yours.
http://apps.facebook.com/countdown-timer/
As I posted here - Facebook Send Button - 'Sorry, something went wrong.'...
I had the same problem & worked out that this was due to linking to a Facebook page that did not have a vanity URL set up (i.e. http://www.facebook.com/CubicMushroom rather than http://www.facebook.com/profile.php?id=261963707177053). If you set up a vanity URL for the page it seems to work OK (providing you link to the vanity URL version of the page URL).
To claim a vanity URL, once you have a certain no of like (it used to be 25, but think it's a little lower now) visit https://www.facebook.com/username/

How to like / share URLs inside Facebook that contain get-parameters

We are working on a facebook-app with lots of dynamic pages. As the app is embedded in a tab on a facebook page, the urls contain a get-parameter to address the correct tab/app. We want to implement like- and send-buttons for several pages within our app, but facebook seems to dump all get-parameters from urls within facebook. As the result all like- and send-buttons point to the facebook-page itself instead of the tab.
Does anybody now any workaround? We already tried redirects via an external sefor facebook urls only.rver but facebook seems to evaluate the links on click of the like-/send-button (and seems to follow all sort of redirects).
UPDATE:
Here is an example of a problematic url:
https://www.facebook.com/smartmobil.de?sk=app_171502639574871
UPDATE:
The problem seems to be independant of url get-parameters. It seems that the like-button does not work with any url starting with www.facebook.com
When used in a like-button everything behind the ? will be dumped. This seems to happen for facebook urls only.
Best workaround so far is to point your like buttons at external (non-facebook canvas) urls.
To make this work, you need to do some conditional redirecting to get the user back into your canvas URL. You can either use a client side javascript redirect:
<script>
window.location = 'http://apps.facebook.com/yourcanvasname/foo/bar';
</script>
Or you can do a server side redirect based on the useragent string. Basically, if the useragent contains 'facebookexternalhit' then render a basic HTML page containing OG tags, if not, redirect to the canvas URL.
Doing this means the Facebook sharescraper/linter won't follow any redirects back to the canvas URL, but any user that arrives at your URL will get back to Canvas.
i'm too searching for a solution to control the custom page tab's content through a get parameter (app_data). I still don't have a solution but here at least the reason why all www.facebook.com links are srtiped out of get params. Here at bottom the developer explains why.
Unfortunately I don't think what you are trying to do is possible. Posting a like programmatically requires you to specify a Facebook content ID or alias. This won't work for you because tabs to not seem to have an exposed content ID of their own, and instead use the Page's content ID with an additional parameter which you can't use with the graph.
Liking external links and other content that does not have an ID programmatically is prohibited. With an external URL, the first like of an unrecognised URL creates a new Facebook page for those likes to be represented on (which is the issue I've given up trying to fight), but presumably the presence of your Page's content ID alias (www.facebook.com/smartmobil.de) in the url is making Facebook choose you page rather than creating a new one.
The only suggestion I can think of this late at night is to target an external URL that performs a redirect via Javascript, rather than on the server, but Facebook may be wise to that too and I'm afraid I'm going to bed rather than testing it :)