Facebook Ads API: Fetch page_id by ad_account_id - facebook-graph-api

I'm trying to get all the comments related to a certain ad account through Facebook Ads API, all I know is the ad_account_id. Is there way to get page_id related to this ad account in order to get the comments on that page?

If you're starting with the ad account ID you need to traverse the graph 'downwards' to the posts which are being promoted and the comments on those posts
For the Ad Account, there are one or more Campaigns, those Campaigns contain one or more Ad Sets, which contain one or more Ads - See the structure in the Overview doc
(A shorter call to get all of the Ads in an account is a call to /<API VERSION>/act_<ACCOUNT ID>/adgroups )
Once you have the Ads, each Ad has a Creative attached - for most of those Creatives the object being promoted is a Page Post, the ID of which is the object_story_id parameter of the Ad Creative
Provided you have an access token for the page, or for a user who can see the posts on the page (the page or posts may be restricted demographically), you can then retrieve the details of a post with a call to /<API VERSION>/<POST ID> and read its comments with a call to /<API VERSION>/<POST ID>/comments - see the Post or Page Documentation for details

Related

Is it possible to get comments from facebook on a topic through graph api

i want to get comments and sub comments from facebook is it possible through their api or are there any alternatives from where i can do it .
I want the comment , date and if possible location of the user
You cannot get a user's location, but you can get the comment and date/time.
Docs can be found here https://developers.facebook.com/docs/graph-api/reference/v3.3/comment
Access would either require manage_pages and a page token valid for the respective page or Page Public Content Access feature approved.

Is possible to use Facebook's (Page) Graph API without having an role in that page?

For example, let's say I need to "crawl" (not manually since it looks against Facebook's policies but via graph API) some information from a Facebook's brand page (e.g. https://www.facebook.com/nike/ ).
For example I may need to collect the following fields from a set of brand pages (not just one, such as the one mentioned above, for which I could definitely do it manually), when they are publicly available:
("About tab")
- description
- address
- website
- ...
I was reading Facebook's graph API docs and permissions.
However these permissions are related to users and I already worked with that. What I learned it that it works by
Facebook login --> auth the app to use my data --> the app has access to my data as a Facebook user.
However I'm now interested in brand pages for which I found this docs and this (access token). However it seems that to be able to use this access token I need to be a user with some role in the page (e.g. admin) and not any user who just liked that page.
So, is it possible to access brand pages' data (read-only, i.e. GET) via graph API without actually owning/admin/publishing on that page?
Apparently no "special" access token is required to access pages' public info.
For example I can create any page (not app) in my Facebook account and then use
GET https://graph.facebook.com/(*1)/feed?access_token=(*2)
(*1) the page's name (nike) or ID
(*2)my "bridge" page (i.e. empty page, only used to have an access token. not the page I'm using the graph api on)'s access token
Similarly for /posts/ etc.

Database table structure for storing SSO information for FB or Google+

I have a web application that I would like to add single sign on capability using user's Facebook or Google+/Google App account.
I have a USERS table that stores users login information. All users are required to have a record in this table no matter if they signed up using FB or Google+.
I am trying to figure out the information that I need to store in the database in order to link USERS table records to FB or Google information.
Facebook documentation states:
the app should store the token in a database along with the user_id
to identify it.
So should I create a table called SSO_LOOKUP with following columns:
USER_ID // user's id that links to my USER table
PROVIDER_ID // user's FB or Google account id
PROVIDER_TYPE // indicates if it is Google, FB, Twitter, etc.
ACCESS_TOKEN
For SSO login definitely you need to have your user_id and some basic details which allow you to connect to FB or google
provider: "it will be either FB or Google or anything in future"
token: "This token we receive from FB and Google. In case of FB it
expires after 3 months or so where as it does not expire for google
as per my knowledge"
token_expired:" As In FB token expires after a time so you can have
this flag in place if you need to refresh it after that duration"
user_id: "This is your User id:
uniqueid: "This is the Unique ID which you will get from FB and Google.
That helps to identify your user in FB/Google"
These are the minimum fields you can add and these will even help you to scale your app. In the sense if you want to pull or push data from google and FB at that time Access_token and unique_id will help you.
Also incase you want to see some publish source then you can see some of the code on github e.g.
django-social-auth
For some details you can refer google documentation and Google OAuth2
Hope this will help.
Technically speaking all you really need to store is the Refresh Token and some kind of flag type identifier that tells you if its a Facebook or Google Refresh Token. Then you can query the API for what ever information you need. Storing the User Id would be a good idea becouse if they logout then reauth you will still know who it is even though the refresh token has changed. anything else is kind of over kill really as you will be getting that information back from the API anyway when you make your calls.
You could if you want store there Name and most recent picture that might be nice to display before you have fetched there information. Then update any changes to your data after you access the API for the first time. But its basically up to you how you want to design things, and what kind of application we are talking about here.

Montreal Canadiens Facebook Graph API returns no posts

I'm using the Graph API to return Facebook posts from all NHL teams. Every team returns the posts fine except for the Montreal Canadiens, which returns no posts. I verified that there are posts on their wall, and that the Facebook ID that I used is correct(see here)
I get back an empty JSON list when I try using this link for the Canadiens:
https://graph.facebook.com/110877132302973/posts?access_token=(my access token)&limit=10
Any help would be appreciated! Thanks.
Haotian
The posts on that page all have a custom privacy setting - you need to make sure you're attempting to access them using a User access token for a user that meets whatever restrictions they've applied.
App or page access tokens won't be able to see the posts, nor will user tokens for users who don't meet the restrictions

Facebook API - what kind of authentication is needed now to query a page's tagged posts?

https://developers.facebook.com/docs/reference/api/page/
I want to be able to get the tagged posts for a page (e.g. harvard). what kind of authentication do i need to have (access_token) or do in order to be able to get those posts? they are publicly available.
You answer lies in the link you posted (https://developers.facebook.com/docs/reference/api/page/)
In the connections section, it says "any valid access_token or user access_token":
tagged
The photos, videos, and posts in which the Page has been tagged.
any valid access_token or user access_token
a heterogeneous array of Photo, Video or Post objects.
So if this is incorrect, you can scroll to the bottom of the link and click the Report Bug link to report an error in the documentation.