Facebook Graph API has stopped working for photos - facebook-graph-api

I'm using https://graph.facebook.com/{page-id}/photos but looks like it has stopped working correctly in UI.
The endpoint returns the response with publication ID, but the photo is not shown on the Page. I can only see the uploaded photo from inside my admin account, which means the uploaded photo is not publicly available.
Example:
POST request example:
https://graph.facebook.com/{page-id}/photos?access_token=...
Body:
caption=text
ulr=photo url
no_story=false
published=true
the response:
{
"id": "6851823568176784",
"post_id": "132553756770499_6851823568176784"
}
Even if I use GET for https://graph.facebook.com/{page-id}/photos it shows the recently uploaded photo. However, Page still doesn't have it.
I even posted a bug to Developers Platform: https://developers.facebook.com/support/bugs/986155901938240/
However, the response was: From backend, I can confirm that both photos are created properly (since these were id returned). This seems to be an Facebook.com UI issue.
Has anyone also spotted this?

Related

How to publish Facebook post link+picture without this #100 error?

I have some working code which is posting in a facebook page feed a link + message/caption.
This is working fine.
When I add the picture field which is one image url in my domain I get response error
{
"error": {
"message": "(#100) Only owners of the URL have the ability to specify the picture, name, thumbnail or description params.",
"type": "OAuthException",
"code": 100,
"fbtrace_id": "dfaafdadfs\/Ie6"
}
}
Let us consider the domain is example.com
I have already verified this domain in facebook business manager via DNS TXT entry lookup.
Also I have added the page app under this domain.
I don't know what is wrong here.
The failing request is something like this
POST /myPageId/feed?access_token=at&link=https://example.com/somepath&message=somemessage=picture=https://example.com/images/someimage.jpg
If I remove picture parameter posting works fine without the error.
Any input here? The link without a picture does not get any attention or impressions so we want to publish the image as well.
PS:
The documentation in facebook is located at
https://developers.facebook.com/docs/graph-api/reference/v15.0/page/feed
and this section (no hash available so you need to scroll down to see the first screenshoot)
This second image was found at another page in fb site. Neither of them work with picture. Again I have added and verified my example.com example domain under business manager. Both the link + image url are from example.com domain.

How can I post content to an app users page, linking to their website, from an app running on my website?

I am creating an app for a client that allows their clients to schedule posts and post to facebook from the app.
Clients log into my-domain and the app requests permissions to post to their pages. I am fine with getting a list of pages from facebook and requesting the pages_read_engagement and pages_manage_posts permissions.
My app needs to allow users to select an image (hosted on my-domain) and post that with a link that points at their-domain, along with the post content. Here is an example of an api call I am making using the Javascript SDK (from my app at my-domain):
FB.api('/' + page_id + '/feed', 'POST', {
message: post.content,
link: user.website,
picture: image.url,
access_token: page_access_token
}, () => {})
I get back an error:
(#100) Only owners of the URL have the ability to specify the picture, name, thumbnail or description params.
I have had a read through the domain verification docs but I don't understand what I need to do next. Do all of my users have to verify their own domain via DNS verification? Is there a way for me to allow users to post to their own pages, linking to their websites, from my app, without them having to do anything technical? Am I missing something?

Get comments of public facebook post

I'm trying to download every comment on a public facebook post (it's one of those "can you do this basic algebra problem" posts - I want to see what percent of the comments get it right).
The Graph API Reference shows that I should be able to just GET graph.facebook.com/v2.5/{object-id}/comments.
I believe the object-id of this post is {user-id}_{post-id}, where post-id is the id in the url. So given this url:
https://www.facebook.com/beth.mansfield.9/posts/10207885721596563
The user-id of facebook.com/beth.mansfield.9 is 1101752663 (from findmyfbid.com), and the post-id is 10207885721596563 (from the url), which makes the object-id="1101752663_10207885721596563".
When I try graph.facebook.com/v2.5/1101752663_10207885721596563/comments in the Graph API Explorer, though, I get:
{
"data": [
]
}
What am I doing wrong? Is there another way to get the comments? There are close to a million so loading them all in the browser and scraping with javascript would be unfeasible.
That is a user profile. You can only get data of a user profile if that specific user authorized your App. In that case, you would need to authorize with the user_posts permission. Just because it is public, does not mean you can get the data - that would only work for Pages.

Facebook Graph API v2.5 - Impossible to delete post created with a link

I'm using Facebook Graph API v2.5 to publish and delete posts from user's profiles.
I'm using Postman (Chrome extension) to test my REST calls.
Case 1) When all actually works:
- I do a POST request to "https://graph.facebook.com/v2.5/MY_USER_ID/feed", with params "access_token" and "message"
- The API returns me the created post ID, let's say "108373569531356_138530589848987"
- Then I do a DELETE request to "https://graph.facebook.com/v2.5/108373569531356_138530589848987", with params "access_token".
- My message I successfully removed from user's profile
Case 2) My issue, it does not work as expected
- I do the same POST request as previous, but I add an extra "link" parameter.
- The API returns me the created post ID.
- Then when I try to delete this post using DELETE request, the Facebook API throws me an error: "message": "(#100) This post could not be loaded"
One thing I noticed, is that first request seems to create me a Facebook "post", but the second one seems to create a "link".
I used the v2.3 API get/post_id to compare both posts, they are pretty much different.
So, why can't I delete a "link" element, the Facebook documentation does not tell anything about it.
Many thanks !
Maybe you were suffering a bug (https://developers.facebook.com/bugs/1671530079772375/) which is fixed now.
If you published a post with a link through an app being in development mode, this post wasn't credited to your app [bug] so, if you tried to delete it, you couldn't because Facebook only allows to delete posts published by your app.

GET news feed FROM stream TABLE

I am trying to send request for newsfeed to fql through Graph API Explorer on developers page, I am surprised to see that response i got doesn't match fully the news feed on facebook page also the news feed on ios app for facebook. It gets more confusing when i post request through url which responses with totally different list in XML, which shows something extra which doesn't show on my news feed on facebook page.
the query i send with fql from Graph API Explorer
SELECT post_id, actor_id, target_id, message FROM stream WHERE filter_key in (SELECT filter_key FROM stream_filter WHERE uid=me() AND type='newsfeed') AND is_hidden = 0
and through URL i send
https://api.facebook.com/method/fql.query?query=SELECT%20post_id%2C%20actor_id%2C%20target_id%2C%20message%20FROM%20stream%20WHERE%20filter_key%20in%20(SELECT%20filter_key%20FROM%20stream_filter%20WHERE%20uid%3Dme()%20AND%20type%3D'newsfeed')%20AND%20is_hidden%20%3D%200&access_token=<access token>
I am searching for answer for a week now an i didn't find nothing useful, tried this from other account and i see same problem.
I tryed also to see what facebook app for ios request and i got a link which looks like this
https://graph.facebook.com/graphql/
with a POST parameters
sdk_version=3
format=json
app_version=40121
q=node(1033280756){home_stories.environment(iphone).first(5){edges{deduplication_key,...<in very long query>
locale=en_US
method=get
sdk=ios
access_token=<access token>
but testing it with Graph API Explorer with access token from GAE i recieve message
{
"error": {
"message": "(#803) Some of the aliases you requested do not exist: graphql",
"type": "OAuthException",
"code": 803
}
}
this only works and response totally match my news feed from facebook page when i gave access token from my ios facebook app and when i try to get access token through https://www.facebook.com/login.php?api_key=6628568379 i receive the same error.
I cant understand is this a bug in table or this isnt the way how you get news feed like facebook gets?
Did anybody got any official answer from facebook?