Facebook Graph API get page_impressions - facebook-graph-api

I've been using the graph api to get insights for our page. I log in, authorise and get a page access token. Recently, Facebook made it impossible to get any data without getting your app reviewed. I've managed to get my app reviewed with the following permissions:
manage_pages, email, read_insights, default:
These are found here: https://developers.facebook.com/docs/facebook-login/permissions/
This is my call:
https://graph.facebook.com/v3.0/me/insights/page_impressions_by_age_gender_unique
And this is the response:
{
"data": [
],
"paging": {
"previous":
"https://graph.facebook.com/v3.0/300196376675661/insights?access_token=xxx&pretty=0&metric=page_impressions_by_age_gender_unique&since=1532674800&until=1532847600",
"next": "https://graph.facebook.com/v3.0/300196376675661/insights?access_token=xxx&pretty=0&metric=page_impressions_by_age_gender_unique&since=1533020400&until=1533193200"
}
}
Are there additional permissions that I need to get in my app? Has anyone managed to get these insights?
Looking for these items:
[
("page_impressions_by_age_gender_unique", "day"),
("page_impressions", "day"), ("page_impressions_unique", "day"),
("page_impressions_paid", "day"),
("page_views_by_age_gender_logged_in_unique", "day")
]

This might help!
Your query should be like this =>
"<your_page_id>/insights?metric=page_impressions_by_age_gender_unique&accessToken=<your_page_access_token>"
Make sure to pass the Page Access Token, not user token.

Related

flask-restplus /flask-restx automatically add 401 response to Swagger docs if authentication is on

As the title mentions, I would like to have a #api.response(401, 'Unauthenticated') response added to the documentation of all APIs which require authentication.
flask-resplus/restx displays a lock icon, so the user should expect a 401 if not authenticated, but I would like this response to be explicit without having to explicitly write that decorator on every method or resource.
Is this possible with some global setting?
+1 on that. I'm facing a somewhat similar challenge.
Also opened this issue on their GitHub repo with hopes to get an answer.
Would be awesome if someone could suggest a solution 🙏🏼
you don't need to have a special decorator for it.
you just need the following code in you endpoints init.py file. Swagger will automatically support authorization and will through 401 with any decorator.
from flask_restx import Api
blueprint = Blueprint("api", __name__)
authorizations = {
"Authorization": {
"description": "Inputs: Bearer \\<jwtToken\\>",
"type": "apiKey",
"in": "header",
"name": "Authorization",
}
}
api = Api(
blueprint,
title="Dummy API",
version="1.0",
authorizations=authorizations,
security="Authorization",
)

Making facebook Test Users friends using Facebook Graph API

I have 2 test users in facebook.
I want to make them friends using Facebook Graph API:
https://graph.facebook.com/v2.6/user1_id/friends/user2_id?access_token=user1_access_token
method: post
I get error:
{
"error": {
"message": "(#33) This object does not exist or does not support this action",
"type": "OAuthException",
"code": 33,
"fbtrace_id": "A7EHydY_B4x......."
}
}
Can someone please help?
Thanks.
https://developers.facebook.com/docs/graph-api/reference/v6.0/test-user:
An app access token is required to update these fields for any test users associated with that app.
You need to use your app access token for this, not a user token.

Facebook Graph API feed not working

I'm completely new to Facebook Graph API.
I'm trying to use the Graph API Explorer: https://developers.facebook.com/tools/explorer/
I got the token, I'm using GET method and version 2.5 of FQL, and following is the query itself:
me?fields=id,name,picture,feed
The result from that query unfortunately only includes the id, name and picture but does not include the posts. I also tried to write "posts" instead of "feed", but the result was the same.
This is what I get:
{
"id": "123456789",
"name": "John Smith",
"picture": {
"data": {
"is_silhouette": false,
"url": "https://fbcdn-profile-a.akamaihd.net/very-long-url"
}
}
}
As you can see, nothing about the posts.
I also tried to open a new Chrome tab and go directly to this URL:
https://graph.facebook.com/me/feed?access_token=very-long-token
And this is what I get for that:
{
"data": [
]
}
What am I doing wrong?
Any help will be profoundly appreciated!
Did you try with user_posts permission?
Maybe you forgot this...
https://developers.facebook.com/docs/graph-api/reference/v2.6/user/feed
Your app needs user_posts permission from the person who created the
post or the person tagged in the post. Then your app can read:
Timeline posts from the person who gave you the permission. The posts
that other people made on that person Timeline. The posts that other
people have tagged that person in.
Cheers

How to use Facebook graph API query correctly

i am a new comer .Someone suggested me that i will get a solution of my question from this site.So that's why i am posting my question in here.
When i used this facebook fql query:
http://graph.facebook.com/fql?q=SELECT+like_info+FROM+photo+WHERE+object_id=723217944369470
Answer was:
{
"data": [
{
"like_info": {
"can_like": false,
"like_count": 7,
"user_likes": false
}
}
]
}
But when i used this facebook fql query:
http://graph.facebook.com/fql?q=SELECT+like_info+FROM+stream+WHERE+post_id=488253731301614
Answer was:
{
"data": [
]
}
Why?and how to query correctly to get a post's like info?
In graph API, you can do something like this to get a post's likes:
https://graph.facebook.com/POST_ID/likes?access_token=ACCESS_TOKEN
You need to replace POST_ID and ACCESS_TOKEN with actual values.
You can use Graph API Explorer to generate an access_token
https://developers.facebook.com/tools/explorer/ (don' forgot asking for sufficient permission to view the post in question).

Facebook Graph API - get ID for a URL?

This seems like a pretty obvious, basic thing to expect from the Graph API, but I'm having serious difficulty with it. All I want to do is get the ID for any particular URL. They have a method for this:
https://graph.facebook.com/?ids=http://www.imdb.com/title/tt0117500/
And that works great. But if I try another URL, say for my blog,
https://graph.facebook.com/?ids=http://dusda.vox.com
it doesn't give me back a numerical ID like all of the examples do. Instead, this:
{"http:\/\/dusda.vox.com":{"id":"http:\/\/dusda.vox.com"}}
If I try to use that "id", I get jack (probably because the query string looks impossible to parse):
Request: https://graph.facebook.com/http://dusda.vox.com/likes
Response: {"id":"http:\/\/dusda.vox.com\/likes"}
So what's up with this? Is the Graph API just selectively reliable, or am I misunderstanding something? I've tried it on URLs that I know are popular on Facebook, too, and I've gotten mixed results.
Try FQL for this;
http://graph.facebook.com/fql?q=select%20url%2C%20id%2C%20type%2C%20site%20from%20object_url%20where%20url%20%3D%20%22http%3A%2F%2Fkriek.hu%2F%22
returns:
{
"data": [
{
"url": "http://kriek.hu/",
"id": 497425470154,
"type": "link",
"site": "kriek.hu"
}
]
}
For more information, see object_url.
I hope it helps!
The ID is given by Facebook only to pages which have a fbshare/like button. Else the API returns the number of shares and the request URL.
If I use the facebook object debugger page I can scrape every url, for example:
https://developers.facebook.com/tools/debug/og/object?q=ddnl.de
The page give me back an url with ID and so I can get every needed parameters.
In this case https://graph.facebook.com/10150164108649475
But I don't get this ID or url with FQL or otherwise?
Very old question, but here's what I found works for me as none of the answers here really resolved my issue:
If you have a custom object tied to a url, the method suggested by Pepe only gives the id FB assigns to the url where type=link. (Which is not tied to any comments)
In my case, I need my custom object id so that I could pull associated comments from it. You can get the object id using FQL by doing a select on 'comments_fbid' from the 'link_stat' table. (This will return the object id even if no comments have been added so it should work for other cases)
api.facebook.com
At this time no of the suggested solutions work for all urls. Only the Debugger is able to get the Graph ID correctly
For example
Debugger:
https://developers.facebook.com/tools/debug/og/object?q=http%3A%2F%2Fwww.amazon.de%2Fgp%2Fproduct%2F3810510793%2F
For URL:
www.amazon.de/gp/product/3442465583/
Result:
https://graph.facebook.com/10150771435736113
{
"url": "http://www.amazon.de/dp/3810510793/ref=tsm_1_fb_lk",
"type": "book",
"title": "Die unwahrscheinliche Pilgerreise des Harold Fry: Roman",
"image": [
{
"url": "http://ecx.images-amazon.com/images/I/51I4E81xrRL._SL160_.jpg"
}
],
"description": "Die unwahrscheinliche Pilgerreise des Harold Fry: Roman",
"site_name": "Amazon.de",
"updated_time": "2012-12-19T16:54:27+0000",
"id": "10150771435736113",
"application": {
"id": "164734381262",
"name": "Amazon",
"url": "https://www.facebook.com/apps/application.php?id=164734381262"
}
}
I had the same problem here, I was trying to get the same data IMDB gets. After almost bang my head against the wall, I decided to look at the facebook's js function. And look what I get, the explanation is on the link.
Getting limited data from a page which has a Facebook ID
Peace