I am trying to implement a view counter in my website for videos I created. The current challenge: Getting the public views from facebook. Since I produced the videos for other persons, thy are not posted on my facebook site.
Therefore, the FB graph API does not work, since the video_insights are only visible for the pages who posted them.
But facebook publishes the views publicly under every video. Is there any opportunity I miss with the graph API or is there a workaround for it (thought about loading the posts HTML and extracting the view div, but this would violate CORS regulations...).
FB Graph API video_insights syntax:
{video-id}/video_insights/total_video_views
I've had the same problem and I eventually just scraped the views using phantomjs in conjuction with shell scripting. The thing is, that i still don't know if such action is allowed by facebook at all.
Related
I made a website where people can post links for other websites and then the backend generates a preview of the link (by using curl and parsing out the open graph tags available on most websites / by picking the first image, html title etc). Now, fine after some tweaking but sometimes I get some kind of rate limit.
Here is one example of a link I want to parse: https://www.facebook.com/HBR/posts/10157131816732787
I can parse it 4 ou 5 times and get a title, image etc but then if I repeat it I get sent to the login page of facebook. How can I avoid this?
I tried to parse the link at https://developers.facebook.com/tools/debug/sharing however it says "Facebook URLs cannot be crawled". So my question is: how am I even supposed to parse those links if they don't even allow it on their debugger?
Is there any kind of API that allows me to get this information without user login? I don't want to parse entire facebook pages, profiles etc, just get a preview for a link that my users might post on the website.
You MUST use the Facebook Graph API if you want to get data of Facebook Pages (or anything else on Facebook), scraping is not allowed.
In order to get data of Pages you do not own, you need to apply for Page Public Content Access: https://developers.facebook.com/docs/apps/review/feature/#reference-PAGES_ACCESS
An App Access Token (without Login) is sufficient in that case.
API Reference for Pages: https://developers.facebook.com/docs/graph-api/reference/page/
I dont think show.You can crawl post on public group using python selenium and beautiful soup
A little while ago, I built this:
http://www.littlebray.co.uk/photos.aspx
It's kind of an off-Facebook partial replica of a Facebook photo album gallery, the photos in the gallery section are all pulled from Facebook albums on the Page for Little Bray (fb.com/littlebray) enlarging them gives you a kinda full screen view of them with commenting facilties on the right margin, just like Facebook.
You'll notice that, whilst this comment section looks a bit like a Facebook plugin, it isn't, and the reason for this is that if I used Facebooks Comments Plugin, when a user comments on a photo on the website, or comments on the same photo (remembering the photos come from the same source), it will create two different streams of comments, one shown on FB and one shown on the website.
With my method, any comments posted either on the website or FB will appear in both places as they're al directly injected into the FB graph relating to the object ID of the photo.
A bit later on, I created another, similar image gallery but used Facebooks Social Plugin "Comments" in the right hand margin to comment on photos. The difference here though was that these photos were lcoally hosted by the website and not already Facebook album objects, so this other website is the only source for these images and thus creating FB objects when commenting via a URL is fine.
BUT... it got me thinking, is my first example just a lot of work, is it possible to use Facebooks own Social Plugin to post comments on an object which already exists on Facebook in that way?
I tried pasting a graph URL https://graph.facebook.com/FB_OBJECT_ID into the Comments example on Facebooks Social Plugins page from a status update of mine, but nothing showed.
Any ideas?
EDIT ---
I have discovered I am not alone in asking this question:
Using social plugins for pre-existing Facebook posts
Load comments from open graph object into Facebook comments social plugin
Neither of those have satisfactory answers though. Perhaps I just need to improve my own code and make my own plugin.
At this time the comments plugin can not be used in that way.
I have an app app1 which defines a custom Facebook action act1.
When a user performs this action to an entity (ntt1) in my app, I post to API /me/app1:act1 with URL to ntt1 as its param, so that a post is generated on user's wall saying User act1'ed ntt1 where ntt1 is a link to ntt1's view page (with open graph meta data on its header).
Users can comment or like on this wall post regularly.
Now I want to show users' comments on ntt1's web page as well to share the comments and likes between the Facebook wall and ntt1's view page.
I tried using the Comments social plug-in, but don't know what to put in the data-href to point to the action_instance_id of the wall post.
I know I can simulate a comments box on my page using the graph API (and I've already done so), but this is not making a good ux, because the users need to authorize to my application to view this page (so that the java script API can fetch the comments from the Facebook).
Have you tried just pointing the data-href attribute to
https://www.facebook.com/{user_name_or_id}/activity/{action-instance-id}
…? The docs for using actions say this is the URL you can use to “preview” the news feed story that this published action will generate (or rather has already generated, because without publishing the action first, you would not have an action-instance-id).
If you click on the “x minutes/hours/… ago” link for the feed story for one of your published actions, it should take you to a link that’s build using the same scheme.
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.
I am trying to achieve similar functionality to the one shown here...http://blackmilkclothing.com/collections/leggings/products/circuit-board-grey-leggings
there fan page https://www.facebook.com/blackmilkclothing allows people to hash tag a photo and then populate it on their website like the link above.
Loading a series of tagged images from my facebook fan page to my website. I am not positive how this is acheived? I am assuming some kind of api process but any help in the right direction would be appreciated.
Thanks! All help is appreciated
See the 'tagged' connection of a Page in the Graph API: https://developers.facebook.com/docs/reference/api/page/
It returns a list of objects the page is tagged in, including photos
If you need background knowledge I suggest these links in particular:
Graph API overview: https://developers.facebook.com/docs/reference/api/
Page login: https://developers.facebook.com/docs/authentication/pages/
After a good bit of trial and error I've found the most efficient way to query photos tagged to a particular Facebook page is to use Facebook's FQL interface to retrieve a list of stream posts.
With FQL you can limit the queried objects to only those posts containing images (unlike with the higher-level Graph API calls which will return all posts, many of which may not have associated photos), and you'll also have more granular control over composition of the result set.
Keep in mind that Facebook doesn't have true hashtag support (only Facebook pages can be tagged), so to simulate the hashtag support that Black Milk Clothing encourages, you'll need to parse and filter the photo message text yourself.
As an alternative quick and easy solution, I've rolled the results of my efforts into a free online service called TagTray -- with TagTray I've added an interface for building and curating hashtag based galleries from Facebook, Instagram, and TwitPic (including application-level Facebook hashtag filtering) that can be framelessly embedded into a site with a few lines of JavaScript.