I follow a facebook page which has some interesting posts and they post regularly. I want to write a python script that gives me a notification whenever the page posts something. Is there a way I can accomplish this in Python?
I have searched a bit, seems like graph API is the way to go. However, all the tutorials I have seen online give a way to scrape some data or get post information. I do not seem to figure out a way to detect when a new post is made.
How should I accomplish this task?
Notifications for changes or new posts can only be made with Webhooks - which are only available if you manage the Page. Scraping is not allowed on Facebook, so there is no way to get notifications for Pages you do not manage.
You could only check with the API on a regular basis, but you would need Public Page Content Access for that, and you may have a problem with API limits if there are many Page Posts or Pages you want to check.
Related
I'm new on working with Facebook and honestly I found it very confusing, terminology and documentation seems to be very ambiguous in many cases. Can somebody please help me out with a plain english explanation on how I can achive the following?
Post and image to Facebook (on the user page) and then check the stats (insights) of that post.
Till now I have managed to:
1) Create an app
2) Post the image on the user page with the desired message
I'm not able to understand how I can retrieve information about the particular image which was uploaded through my app. I want to know how many people have viewed that image, how many likes did it get, how many times it was re-shared.
Is it possible at all?
I'm posting to /photo not too /feed and I will like to keep it this way if it is possible.
Sorry if this was answered already but I spent a few hours trying to find an appropriate answer but wasn't able to get the right documentation.
UPDATE 1
After having a couple of days off from this topic and receiving the first 2 answers, I took another dive into this. Now I have tried the Graph API Explorer as suggested, and using the ID of a POST I can get some details about the POST, but the insights aren't showing anything, just next and previous.
My goal is to be able to gatther some stats about the pictures uploaded through the app. If this is not possible directly what should be the approach I need to take?
I don't believe a personal /photo has /insights attached to it - the Insights Object documentation page suggests that they do not - but you should be able to get likes, shares, and comments via the API.
It would appear FB has launched a redesign/reorganization of its documentation in the last couple of weeks, but the documentation for the /photo graph object is here -- you will need the user's Access Token, and the API endpoints you're looking for each have links to their own documentation pages there, including example code for each type of request.
Edit (summarizing discussion in comments):
There is no method via the Facebook API to gather insights for all photos posted to individual user timelines via an app. The app can gather likes, shares, and comments for each of those objects individually via API requests, and can make API requests for insights for photos posted to its own timeline. Neither of those options solves the intended use case here.
I'd recommend a solution that uses Sharing rather than an app integration, as this allows for better access to insights on the photos being shared. This is also a much simpler integration, and less brittle wrt future Platform changes. The main tradeoff is that the original photos being shared are expected to expire after a couple of months -- if this is unavoidable, I'd suggest implementing a redirect for requests for expired objects on the site.
We are able to get different kind of photos or picture Using Graph API
like as below:
1.Page Photos
Photos for a Facebook Page.A Page Access Token is required for all methods.Find here
2.Page Picture
Picture belonging to a Facebook Page. Find here
3.Photo
Represents an individual photo on Facebook. Find here
4.User Photos
Photos for a person.Find here
I hope it's helps you.
For a given Facebook user, is there a possibility to read all posts that he's made to any pages? On FB web, these can be found in the activity log, but so far I couldn't find a method to get them via API.
Both /user/posts and /user/feeds only contain status and profile updates, not posts to pages. I know I can read /page/feed and use paging to find this user's posts for any page the user likes, but how about those he doesn't?
No, outside of FQL, there is nothing in the API that accomplishes this. I'd imagine this to be a pretty data intensive call with minimal use cases however, so I don't think this will be introduced anytime soon.
As detailed in the my post on IT Security Stack Exchange, I am the administrator for a page with a many recent unknown (an undesired) likes.
It was suggested to me to learn the Facebook API and write an algorithm to remove likes automatically, based on thresholds (ex.: remove a like if the user has a suspicious amount recent likes).
I'm aware of the many other posts discussing issues with retrieving the like count for a Facebook page, but was unable to find any posts discussing removing likes as the page admin.
Is this possible to achieve? If so, how would this be done?
Try looking into using the block method.
PAGE_ID/blocked?uid=USER_ID_YOU_WANT_TO_BLOCK
This should do the same as removing the like. I am not sure whether unblocking the user resets the like or not (works on Twitter) so you can look into that as well with a HTTP DELETE on the same call.
As far as I know there is no way to explicitly remove a like from a page.
For more information see http://developers.facebook.com/docs/reference/api/page/#blocked
We want users to be able to post to their Facebook if they want to. We have it kind of working with the older Facebook profile but not with the new Timeline.
We want it to be like Tumblr where you can post/share to your Facebook account as much as you want.
Is there a limit of post that we can have a day per users or the via entire API in general?
We are using FB connect already of course!
The documentation for Facebook's Open Graph is probably the best place to start. Take a look at their best practices page, as well:
If your application is making too many calls, the API server might rate limit you automatically, returning an "API_EC_TOO_MANY_CALLS" error.
I have a website that allows people to post events and it automatically posts their events to facebook if they so choose. I also integrated facebook comments on the event pages on my website.
Is it possible to merge the comments that people leave on my website's event pages with the comments that people leave on the facebook event page that was automatically made for them? I can't seem to find any documentation on this.
Edit: Just to clarify: The comments on my website are done via the facebook-comments API, they are not a module of my application.
Adding a separate answer, as after clarification it's significantly different.
If you want to basically have the wall of your event show up on your website, you can use the Event API to pull in wallposts and display them. To be able to post to that wall, you would have to do some custom coding to authenticate the user with publish_stream permission and then have a form on your site that would post to the event's wall, as noted in the post section of the above link.
Someone may have done this already and put code out there, but I doubt there is an easier way to get your ideal situation up and running. This use case isn't as automagic as the comments box, unfortunately.
If you're just looking to spread your events socially, however, the comments box will post to the commenters' walls with a link to your event page, which can then in turn point them to the Faecbook event. You might be able to use the Facebook event's URL as the URL for your comment box on the website, so it would just post a link directly to the Facebook event, but I'm not sure on that one.
I looked at this in my app, and we ended up deciding to just maintain separate streams. This is because it's only a one-way integration - you can get comments from Facebook via the Graph API and format them on your own website, in-line with your website comments, but there's no way to push comments from your website up to Facebook.
You could, if you wanted, just use the Facebook comment form for all comments - this has been done by big sites such as TechCrunch, and is effective, but it requires users to have a Facebook, AOL, Yahoo, or Hotmail account. Whether you want to do that or not depends on your preferences and userbase.
there a tool that combines comments form different pages or different sources
Check https://feedgun.com which works on pulling comments from different sources like YouTube videos, existing wordpress sites, facebook comments plugins and even DIsqus account and combine them all together and publish them on any of your webpages, and it all works automatically once you set them where to pull and where to publish.