Get friends birthday facebook graph api
You may have already thought that the myriad posts and comments on Facebook would be a marvelous source of text. You are right, but as usual, the devil is in the details. Facebook separates its users into two distinct groups, individuals like you or me who have profiles with strict limits on what can be shared with others and groups which have public pages with essentially no limits on what can be shared. You will look at the former briefly, but concentrate on the latter. You cannot interact with it without validating yourself.SEE VIDEO BY TOPIC: Facebook PHP SDK : Login And Get All User Friendlist - Curl - Facebook Graph API - Learn Quickly
SEE VIDEO BY TOPIC: Facebook PHP SDK : Login And Get All User Post - Curl - Facebook Graph API - Learn QuicklyContent:
You may have already thought that the myriad posts and comments on Facebook would be a marvelous source of text. You are right, but as usual, the devil is in the details. Facebook separates its users into two distinct groups, individuals like you or me who have profiles with strict limits on what can be shared with others and groups which have public pages with essentially no limits on what can be shared.
You will look at the former briefly, but concentrate on the latter. You cannot interact with it without validating yourself. Validation is a simple process, but it helps to start by logging onto your Facebook profile.
Now for a bunch of clicking:. Let us now try to replicate this in Python. You can get it from pip :. SDK stands for software developement kit. Import it as facebook :. You are welcome to check its help page with help facebook , but it is rather long. Get started by initializing it with your access token:. Do not press Search for a field.
Your page should wind up looking something like this:. Line 1 returns may entire profile as a dictionary. Line 2 trims it down to the five fields that pattern. Did you notice the peculiar syntax of the fields argument? It is string with each item separated by a comma, rather than a list or tuple of strings. Does that remind you of anything? It will help to pretty print the result to have an easier-to-read representation that approximates that of GraphAPI Explorer:.
You can retrieve other fields from your Facebook profile in a similar way, such as the one for education:. You are welcome to check out any other fields in your profile that you may have filled out that I have not, but I want to take up Facebook connections. The Explorer window should fill up with items like this:. There are a lot of posts in this window. Twenty-five, to be exact, which is so many that they obscure the overall structure. Update Explorer with your selections by clicking on the blue Submit button.
Your window should now hold a single feed item, with a two enormous URLs beneath it, like this image:. The entire item is encased in curly brackets, so Python would represent it as a dictionary. Following the level of indentation, it has two keys, feed and id. Since you limited feed to 1, data would appear to be the key that holds the posts in your feed. This is what we are interested in. To emphasize the structure I have just explained, I reproduce below the keys without the content of their values:.
Turning to facebook-sdk , to retrieve the posts in your feed, you can enter graph. But WAIT! That could choke Spyder! You should play it safe and add a limit:. You still get a bunch of stuff. Assign it to a name and pretty print it to a depth of one and then two levels of indentation:.
Pretty printing the connection object to a depth of one in line 4 returns the short, lovely line 5, which shows you that the object returned is … is … can you guess? Yes, it is a dictionary made up of two keys, data and paging. Pretty printing it to a depth of two reveals that paging in turn is a dictionary with the keys next and previous.
So the layout of information in GarphAPI Explorer that I took pains to impress upon you now bears fruit: the text you want will be in data and the address for getting more text will be in next. Confirm this by selecting the first and only element of the data list and pretty print it to a depth of one:.
In my example, the text is the value of the key story ; in yours, it could be the value of the key message , depending on the type of the post. We will make use of this observation in a moment.
This raises a KeyError exception on the first post that has message but not story. The alternative is to deconstruct the list comprehension into a for loop with a try-except statement to check for KeyErrors:. That should fill postText with ten strings that look like the text of each post. Feel free to explore them. I am going to illustrate a single likes just to underscore the structure of the response:. As with feed , data holds the items of interest and next points to the next ones.
In facebook-sdk , you should be able to come up with this:. Finally, you may have noticed a connection for comments, but comments are attached to posts. Yet I want to limit it to one, in order to clarify the overall organization.
This gives me the opportunity to repeat one more time that data holds the items with text and next points to the next ones. This should give you enough background to plan how to extract the text of the comments from the posts in your feed. You could glom them all together in one giant sticky ball of text, for which this block is a first stab:. But as pretty printing lays bare, the comment data is itself a list with includes all of the ancillary fields along with the text field of message. To extract just the message, there would have to be a list comprehension within the comment data:.
Well, yes, for my limited definition of the trick. Saving just the comments loses track of what they are comments on. How would you do that? For this second part, I have chosen USA Today as an example, though any large media organization would do just as well. You can do this by navigating to its home page , scrolling down, down, down to the bottom of the page, and right-clicking on the Facebook icon to open in a new tab. Plug it into the input line of Explorer and hit Submit to render a screen like this:.
For instance, there is a description:. I am sure that you can guess how to reproduce these two screens in facebook-sdk :. Pretty-printing postInfo to a depth of four manifests all of the information that is folded into a post, with more detail than is revealed in my own posts or by Explorer. The top level of data and paging is clear as the least indented. All of the fields of the data dictionary are indented to the next level. Of particular note is the highlighted line 7 which holds the comments.
There is one final task, namely to get more than a single page of 25 responses. Go ahead and import it:. As a first step, make a name for the number of posts that are downloaded from a single call to GraphAPI and plug it into the limit argument of graph. Now you need a second name, say downloads , for the number of times to download. I am going to initialize it with infrequent number, like 11, to preclude making a mistake but not realizing it. In addition, an empty list posts needs to be set up to hold to hold the posts downloaded by the code.
After all that, a while loop can iterate until it reaches the number of downloaded posts set by the names. Within this loop, the algorithm is to extract the posts from postInfo , add them to the list of posts and then get the next post from the next key within the paging key:. Line 3 introduces the while loop, which you have not seen yet, but which works the way you imagine it to.
It repeats the block of code indented underneath it until the numerical condition fails, at which point it halts. The the final line is executed, that of pretty-printing a list of resultant messages. Line 6 shows how requests is called. What I really want are the comments for each post, as I have reiterated tirelessly. The entire code is gathered together here, even though the variables are repeated from the previous block:.
The drawback of this approach is the default limit on the number of comments per post, twenty-five. To overcome this limit requires a conceptual innovation, that of a loop that never ends. In line 12 below, it is achieved by while True: containing the code for downloading comments. Thus the while loop never stops of its own accord, because it is permanently true. Yet any loop can be interrupted by the break statement.
So what condition would you want to be fulfilled to stop processing comments? Running out of comments, which should happen when the next key disappears from the paging value. If the code expects to find a key but does not, it throws KeyError , which an except statement can pick up and use to execute the break statement.
This happens in lines 17 to 18 below. The only other innovation is to download the comments themselves. I create a new name nextCommentBundle to hold the download, extract the comments in a list comprehension over the data key, save them as individual items to the current post id in the postComments dictionary, and then try to download the next batch of comments with requests , relying on finding the next key in the value of paging.
This is the import of lines 14 through 16, which is set up by line Here is the whole shebang, including the context:.
Subscribe to RSS
An award-winning team of journalists, designers, and videographers who tell brand stories through Fast Company's distinctive lens. Leaders who are shaping the future of business in creative ways. New workplaces, new food sources, new medicine--even an entirely new economic system.
There are many birthday related facebook application. Most of this type application provide feature like, they show you the upcoming birthdays of your friends. Some of the app also send notification to user before any birthday of his friends come. Solution 1: First you have to collect the uids friends uid of user and then get their info by api. You have to ask your friend through your application to allow the birthdate extended permission.
Using Expo’s Facebook API
The ID of this person's user account. This ID is unique to each app and cannot be used across different apps. Our upgrade guide provides more information about app-specific IDs. The age segment for this person expressed as a minimum and maximum age. For example, more than 18, less than The authentication method a Workplace User has configured for their account. It can be either "password" or "sso". The person's birthday.
facebook birthday api
Shashwat Srivastava , Apeksha Singh. Written in a cookbook style, this book offers solutions using a recipe-based approach. Each recipe contains step-by-step instructions followed by an analysis of what was done in each task and other useful information. The cookbook approach means you can dive into whatever recipes you want in no particular order.
While this is probably the right move for users, Facebook OAuth is less and less relevant. We see a trend across our customer deployments: more people are choosing Google as an OAuth provider over Facebook than ever before. Google will overtake Facebook this year. Other companies in our space Janrain in particular have confirmed this.
Nick Kuh. Nick Kuh, an experienced, Apple award-winning developer, will teach readers how to build an iOS 6 iPhone app from start to finish in 5 days. During a 5-day process you will learn how to build a professional, custom-designed, object-oriented iPhone App.SEE VIDEO BY TOPIC: Getting Started with the Graph API
Facebook did not respond to a request for comment before press time. Only if a person agreed to provide access to that information would they be able to log in and use the app or site. The bar could ask for more information, like when each friend was born, where they work, their political views and their hometown. The data Facebook made available The below images list all the Facebook information, beyond public profile information like name and gender, that a developer could request from the person signing into their account. In many ways, the data that Facebook allowed developers to access is not so different from the data that companies like credit-reporting firms collect and make available for ad targeting. But a major difference is the data from those companies is aggregated and anonymized before brands can access it; the data that Facebook made available through its Graph API was not.
Get Acquainted with Facebook Login and the Graph API
Reading documentation or marketing copy might get me familiar or even excited… but it rarely gets me comfortable or confident. You know what does? Playing around in a sandbox. As more and more companies look for developers who can integrate existing services like Facebook and Google with their products, you can increase your market value by getting acquainted with Facebook Login and the Facebook Graph API.
Mining the Social Web, 2nd Edition by Matthew A. Russell