Facebook Open Graph Object ignores attributes - facebook

I've been trying for ages to find a solution to post my page as an inline video to facebook.
I've tried multiple meta-tags to no avail (it displays the image thumbnail and to the right the title/description/website).
I've tried using flow player to try using og:video:type:application/x-shockwave-flash but once again it showed the same exact result when attempting to share.
I've now been looking into facebook graph api for possible answers.
I thought I had something in custom open graph stories but I'm using the API v2.10 and it's been removed since 2.8 and completely removed from past versions of the API since october 2017, so that won't be a solution.
I then looked into the Open Graph Stories Object API. Once again I thought I had something but now I am stuck because the example code on the page (using curl) doesn't work no matter what I do
curl \
-X POST \
"https://graph.facebook.com/app/objects/video.other" \
-F "access_token=APP_TOKEN" \
-F "object={
'description':'This is a description',
'title':'Test Video Object',
'video':'secure_url_to_video_on_AWS\',
'url':'secure_url_to_page_on_my_website'
}"
=> {"id":"OBJECT_ID"}
curl https://graph.facebook.com/OBJECT_ID\?access_token\=\{APP_TOKEN\}
=> {
"created_time":"date",
"title":"Test Video Object",
"type":"video.other",
"id":"OBJECT_ID"
}
and when I attempt to delete it as such I get an error
curl -X DELETE https://graph.facebook.com/OBJECT_ID\?access_token\=\{APP_TOKEN\}
=> {
"error":{
"message":"Unsupported delete request. Object with ID 'OBJECT_ID' does not exist, cannot be loaded due to missing permissions, or does not support this operation. Please read the Graph API documentation at https:\/\/developers.facebook.com\/docs\/graph-api",
"type":"GraphMethodException",
"code":100,
"error_subcode":33,
"fbtrace_id":"Cbec0ormiGq"
}
}
So Basically 3 questions:
1) Why won't facebook save the other attributes except the title and type ?
2) The Object obviously exists since I can search it so why does it say it doesn't when I attempt to delete it (same result by the way using the object browser on their developper website) ?
3) Any ideas on how to share my page and make it appear as an inline video ?
Thanks for any help.

Proper Open Graph meta tags would be the way to implement this - but it looks like Facebook is in the process of phasing this feature out.
This question Facebook Open Graph og:video tag for YouTube videos refers to a bug report on the FB developers site, https://developers.facebook.com/bugs/1963535797258090/, and there they say,
It looks like this behavior is actually by design.
In our efforts to make News Feed an even more visual and engaging place to connect, we have been introducing new design updates in News Feed beginning in August 2017.
As part of these updates and to provide a consistent experience across desktop and mobile, external video link posts (both paid and organic) on desktop will look and function similar to other link posts. People will now tap on the links to go off of Facebook to watch videos instead of watching within News Feed — mirroring the experience available for such posts on mobile.
Not sure that’s going to happen for all content publishers at the same time. Facebook usually rolls out such updates gradually, so it might still work for some, while you might not be able to get it working now for any new pages/articles you share.

Related

Crawl Public Facebook Posts

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

Get restaurant menu from Page using Facebook Graph API

The problem is to get the link to menu from a Facebook official page of a restaurant.
Here is an example of such page: https://www.facebook.com/freshchoice.bb — there is a link to menu of the restaurant which leads to https://www.facebook.com/download/216155385221332/Facebook%20menu.pdf.
Actually, this link works well even if I remove the name of the file from it, and I understand, that 216155385221332 is an ID of some object. But how can I obtain this ID from the API?
I have already spent two days trying to find a solution for this task and have had no luck.
When I request data from Facebook Graph API, I get tons of information, and I can request any of the fields listed here: https://developers.facebook.com/docs/graph-api/reference/page but there is no 'menu', or 'downloads' field, and I have almost broke my brain trying to find out a way to solve this puzzle.
I don't think there's a way to reach this object if you didn't create it yourself.
There's the restaurant.menu OpenGraph object:
https://developers.facebook.com/docs/reference/opengraph/object-type/restaurant.menu/
but I think only the user who created it can access it programatically.
The page you're referring to probably just uploaded the menu via the Facebook website, and didn't create an OpenGraph object.
Se
https://www.facebook.com/help/533179700126832

"Top Posts" depending on facebook likes

I have an idea to create a "top posts" feature to my website, which creates the "top" list depending on how many likes and shares that a post have on facebook.
Users may see how many likes an post has received so far since they only have to ask for a single, defined url. However, the website itself has to be able to query all the links that are tied to itself (which have a predefined url template like website.com/[post-id]) to create the "top" list. Is it possible to do something similar (or achieve the same result in a different way)?
Any ideas on a real workflow about something like this will be appreciated!
this seems like a little but interesting project. I don't know if there is a feature that could get that directly in the way you want, but i did something similar.
First you have the Graph API, with that you can get the Posts of a user using feed, with that every post is telling you how many likes does it have which you can get with POST_ID/likes.
Then you'll have to check for changes in the post periodically comparing its created_time and updated_time.
This could seem very hard, because you have a lot of posts and you have to check them all for updates, but you can use batch_requests so you can check them all at once.
I have made a bookmarklet which shows top posts in the Facebook News Feed as well as Google+, Twitter and Instagram Profiles.
Just add a new bookmark in your bookmarks bar and replace its URL with the following code and save it, then go to the social network website and run it:
javascript:(function(){var s=document.createElement('script');s.src='https://niutech.github.io/topnewsfeed/topnewsfeed.min.js';document.body.appendChild(s);})()
The source code is available on GitHub.

Howto publish an embedded video with Facebook's latest PHP SDK?

I know this question has been rised quite a lot of times, but then they constantly change things at Facebook and none of the numerous ways I've discovered on the web, works for me. Maybe it worked before, but not anymore.
I have a web page with a video playing in our skinned jwplayer. All the og tags are beautifully set, so that when a visitor likes the page, it's title, description, thumb and custom flash player are nicely shared on the users wall. Video even plays right there on the wall, in the embedded and customized flash player. So everything works as expected.
But!.. We would like to auto-post our new posts onto the website's page on Facebook and we want them to look exactly like when they are shared. One would probably expect that it'd be enough to simply post a link through PHP SDK and facebook will do the rest. But it doesn't. It seems to not pay attention at og tags in latter case.
What would be the right way to do this? Is it possible to force facebook to look at og tags? Or how to publish a post with a video in a similar way, but through PHP SDK?
One would probably expect that it'd be enough to simply post a link through PHP SDK and facebook will do the rest. But it doesn't.
What exactly are you posting – just a link, or a post containing a link?
(For difference between the two types of creating a feed object see https://developers.facebook.com/docs/reference/api/user/#posts vs https://developers.facebook.com/docs/reference/api/user/#links)
Is it possible to force facebook to look at og tags?
Normally it does without any further action neccessary.
Have you tried, though, putting your new posts URL through Facebook debugger before posting it?

Creating a Facebook App

I am building a website for a client. He has a Facebook page for his business. On the homepage of his site, he wants a feed that will pull in all the updates from his business' Facebook page.
Now, I felt this would be very easy to implement (maybe it is) but I have scoured the Facebook API for any simple way to do this. I am having a lot of trouble understanding which way I should do this. I've settled on using JS to access it, but have no idea where to go from there.
Do I need to create an app? If so, which options do I select so I can access the clients facebook page?
How do I get my app that I've created to show up so a user can authorize it? I have so many questions, and Facebook isn't very good at giving me answers.
Any help is greatly appreciated.
I would suggest you just use the facebook page's RSS feed.
Example
Take his page URL e.g.
https://www.facebook.com/pages/Lazery-Attack/6001014870
Take the number at the end of the url off, and plug it into the facebook feeds URL e.g.
https://www.facebook.com/feeds/page.php?format=rss20&id=6001014870
Voila, you now have an RSS feed you can integrate into the website you are building.
URL Breakdown
The URL is broken down the following way:
https://www.facebook.com/feeds/page.php?format={feedFormat}&id={PageID}
Vaid feed formats are:
RSS - rss20
Atom - atom10
JSON - json
Other Examples
Atom
https://www.facebook.com/feeds/page.php?format=atom10&id=6001014870
JSON
https://www.facebook.com/feeds/page.php?format=json&id=6001014870
Take a look at the facebook API, right here: http://developers.facebook.com/docs/reference/api/page/
You can give it a try here:
http://developers.facebook.com/tools/explorer/?method=GET&path=19292868552%2Fposts
The like box: http://developers.facebook.com/docs/reference/plugins/like-box/ also has the latest posts available
The simplest way is to add a Like Button to the page and make sure "show Stream" is checked on as this will show all recent posts. You can customise the appearance also (e.g. width, height etc).
No App or messy API calls needed!
Try it out here and simply paste the resulting code into your webpage:
http://developers.facebook.com/docs/reference/plugins/like-box/
Not an app, but the Facebook Social Plugins over here at Facebook For Pages