When I click a facebook share button, I should share multiple links with multiple images as one post on facebook timeline - facebook

Is there a possibility of sharing on facebook timeline, multiple links with multiple images which are nicely formatted as one post at the click of a share button?
The idea is that, I currently maintain an e-commerce site and I want any customer to be able to share all the products in an order unto their timeline as a single post with links back to the site.
Currently, using the facebook open-graph api I can only share a link and an image on the click of a facebook share which means I would need to have seperate share button for each products but from the user experience perspective this would not be efficient as it would be better to only have one button to carry out the post and all the products in the order are all shared as one post on the customer facebook timeline.

Unfortunately it's not possible. The whole idea behind open graph is interacting with objects one by one. You can combine whole list of products into one object and share it, but it will still have only one link and image representing that object.

Related

facebook share dialog place

I'm working on a site regarding restaurants and I would like to have a Facebook share dialog (https://developers.facebook.com/docs/sharing/reference/share-dialog) for each restaurant so that people can check-in there.
I searched everywhere and I couldn't find how to open a share dialog that has the place added already.
I want users to be able to check-in very easy, with the place already added, without needing to log in via Facebook and that's the problem, because I don't have and I don't want a token so that I can post directly via Graph API with /me/post.
Do you know if this is possible and if yes, how?

Twitter / Facebook Sharing in Emails

I have an email that get sent out to users, which needs to have a share to facebook or twitter button.
I know there are URL's which can open the share dialogs etc, but the problem is i need to track the number of shares for the item being shared (just a count).
I know there are things like the Twitter Count API, but it's unofficial, private and not supposed to be used, so i don't want to use that and then have it turned off and left with no data to work with.
The only thing i can think of, is have the email link to my website, which contains JS which opens up the Twitter/Facebook dialog, posts it then in the callback tracks the information back to my server.
Any other ideas?
You can set the link to an 'essentially' blank webpage, and use a typical Google Analytics tracking parameter on the link to record the count. Then, create an auto redirect form on the 'blank' webpage so when people click the link, it goes to the page, which then automatically redirects to the share link.
It's a roundabout way of achieving what you want but is one way..

Maintaining continuity of a Facebook post from website to Facebook

I am building a social application, users post data to the website, which is saved in our database.
This creates a record on the site, which is searchable and creates the basic content and function of the site (the purpose is not relevant at this point)
When a record is saved to our database, I want to "spread the word" and send this data out to social networks. Currently, I'm looking at Facebook in isolation.
So, I know how to create a post through the Graph API and post this content to the users Timeline, or indeed to a business page associated with the APP/Website.. but I am not sure how, or if indeed one should, maintain continuity.
What I mean... if a user creates a record on my website, and then the website/App creates a post on my business page, and also asks the user to post it in their Timeline, how do I stop this being two separate posts, and instead one post which has been shared?
I want to achieve:
User posts on website
>
Website posts to Page
>
Post on Page is "Shared" to users Timeline
As opposed to:
User posts on website
>
Website posts to Page
>
Website posts an additional post to users Timeline
The reason I want to do this, is that on the website, I want to be able to show shares, likes and comments from Facebook by tracking the ID of the initial post created when first entered onto my website.
Or am I trying to reinvent the wheel and should just use Facebook's comment plugin?
When you create the post on facebook on the Page, store the returned post ID in your data model.
From what I can tell, there is no way to access the normal user share directly through the API. If you insist on doing it programmatically without popping up any dialog for your user, you can make a post to the user's page which has (the start of) the Page post and a linkback to the Page post as an attachment. This is probably to prevent abuse.
However, if you don't mind relying on an undocumented and deprecated endpoint, you can use the old sharer.php endpoint, so long as you have a fully qualified link to the post you want to share (you can retrieve the url through the api). This will also require your user to enter anything appropriate in their share and then click "share."
The endpoint is
http://www.facebook.com/sharer.php
Call it with the u parameter filled in with the url, so
http://www.facebook.com/sharer.php?u=[URL encoded URL of the post you wanted to call]
You can try this with any facebook post (go to a post, copy the url, past in as the parameter), it's still working (I just tried it) but there are no guarantees. See the top answer to Facebook API: "Share" a post already posted on a page's wall?.
You can still access likes, comments, etc for that post id through the Graph API (and you can provide your users a direct link to the post). Cache/update them as recommended and display them on your own page. You are basically mirroring back onto your own site what is happening on facebook in regards to the post you made.
I would go this route especially if you are at all planning on branching into other services. That way you can do an aggregated display of statistics/likes/etc from the multiple services you are having your platform repost to. This is also good for (at least an impression of) data integrity for your users: they know that your service represents everything they have done in case anything happens to their facebook/etc accounts.
This could especially be noteworthy if they are worried about facebook/etc deleting any of their posts, or for recovering from any issues where a post/comment/etc is not properly stored by facebook/etc (for example, comments have a maximum length which, at least via the main FB UI, silently drops anything above the maximum length in a non recoverable way for the user).

Facebook - Making the photos of a public page only available to followers

I manage a facebook page for a local club and we obviously want to use it to share photos of events we've done.
I'm trying upload an album, is there a way I can protect the photos so only people who like the page can see them?
In your title you said "public page" and in your question you mentioned a "group". The answer to this would be different depending on if you are using a Facebook page, or a Facebook Group.
If you are using a Group format you should be able to restrict who can view your posts, so that group members can see them only.
However, if you are using a Fan Page format on Facebook I don't think you can restrict who can view them. I believe that all fan page content is public, and I don't think you can restrict this.

'Normal' Pages / App Profile Pages / Website Graph Page & Likes

When setting up pages on Facebook, there seems to end up 3 pages.
A Page that represents the website, i.e., when someone Likes the website, they like a newly created Facebook page that represents this website.
A Page that represents the brand, this is a true Facebook page, as created by the user.
An Application Profile Page, which is created by the user because the website in (1) allows endusers to login using their account.
Pressing Like on the website does not +1 the like count on the brand page in (2) above, likewise, liking the brand page doesn't update the count shown on the like button on the website either.
The App posts updates to users profile, with a link back to the App Profile Page, although it has the same functionality as the brand page, is empty as the brand page is the one being maintained.
You can't choose a username for the app profile page, nor change its category, nor 'use' facebook as this page, nor 'check in' to a profile page, nor set any other information like address/phone number; so you wouldn't want to use the profile page as the brand page as it's missing these features.
To clarify, the Graph API contains 3 objects that essentially represent the same thing, their types are as follows:
type = "page"; representing the brand
type = "website"; representing the website of the brand
type = "application"; representing the ability for the website to login via Facebook
Each of these Graph objects collects their own Likes.
How can the likes be collected under a single identity? Why can't a single Graph object/page have all the features that each type of page above has to offer..?
So, a few thoughts:
The Open Graph tries to represent the world as a collection of Objects, with Types. A Facebook Page is one type. A website is another. You might have a Facebook Page, but not a website. Or a website, but not a Facebook Page. An Application is something completely different too (although it's confusing, since they DO give Applications profile Pages...). Lots of folks with websites and applications don't use a single App.
So they do not always represent the same thing, which is why they are not the same thing.
But sometimes they do, sort of, represent the same thing (as in your case).
When this happens there are a couple tricks you can do to improve brand coherence on Facebook.
1) On your website, point the link button to your Facebook Page
<div class="fb-like" data-href="http://facebook.com/mypageurl"></div>
This way at least you have a slightly more unified Like count. You can't hide/disable Page likes, so the best you can do is try to funnel website likes to Page likes. Users will see your Page Like count on the website, and when they like your website your Page count will increase.
2) Have a link on your App profile page to your regular Facebook Page
If you are using an App to publish things, there is that small tagline at the bottom of the post that links to the app. Some folks will click on it. Just add a link to your description in the sidebar saying "Visit our page here!". If there is nothing going on with your App page except a link to your real Page, I don't think you will collect too many Likes on the App page.
(I think you could also set up a custom landing tab on your App page that redirects users to your Facebook Page if you want to get real fancy. It used to work, at least, not sure if it still does.)
EDIT: 12/9/2011 Facebook is removing App Profile pages:
http://developers.facebook.com/blog/post/611/
It's all kind of a pain, I know. Perhaps worth filing a bug about? But there is a reason why things are the way they are, I don't think you have to worry about the App page all that much, and there are some ways to mitigate the problem.
Good luck!