Start learning with our library of video tutorials taught by experts. Get started
Viewed by members. in countries. members currently watching.
Learn the basics of building complex, data-driven applications with the Facebook PHP SDK and MySQL. Author Ray Villalobos first introduces the fundamentals, such as checking to see if a user is logged into an application, accessing Facebook user data through the Open Graph API, and making complex API calls with the Graph API Explorer. The course then dives into building an application with API paths and Facebook Query Language (FQL) calls. Along the way, you'll discover how to post to a user's wall, upload photos, integrate with webpages, and more.
So we want to take a look at the information inside the Open Graph, that's the social data Facebook stores about its users. In order to do that, we have to authenticate the user in order to make sure Facebook knows that this is a safe and secure connection. So let's take a look at logging in our users into our application. Here's the index.php file that I have on my server, and what I want to do is first check to see if a user is already logged into Facebook when they come to our site. So I'm going to add another piece of code right here, that's going to be some PHP, and I'm going to get the user from the Facebook object I requested up here.
So I'm going to put that in a variable and use the getUser method to get the user from that Facebook object. Now let's go ahead and output the user ID we received back from the Facebook object. So I'm going to go ahead and save this and switch back to my application and refresh the screen. We should get the value zero for the user ID, because although this user is logged into Facebook, they have not been authenticated into our application. In order to authenticate them, I need to get a login URL.
The login URL is not just the regular link but a link that passes the proper security transactions to Facebook. I'm going to go back into my code, and I'm going to add something around this line right here. So if this is a user with a normal user ID, then I'll go ahead and print out the user ID. Otherwise, I'm going to getLoginUrl method from the Facebook object and feed it into a variable. When you get a login URL, you have the option of specifying some parameters.
so check out this page on the PHP SDK documentation. So if you scroll down, you can see that you can specify a scope, and that's the permissions you want to request from the user. You can also specify or redirect URI, which is the same as a URL is where you want the user to go after they have logged in. Finally, you can also specify a display, which is whether or not you want the user to see a pop-up dialog box or just be authenticated on the same page. So if you don't specify anything, the defaults are basic permissions which include ID, name, first name and last name, link, username, gender, and locale, which is the location.
So just go and print the URL that we got back from the Facebook object and see what happens. So I'm going to save this and then switch over to my page, refresh the screen, and I should now see a login link. Let's click on it and see what happens. So you think what should happen is you should see some sort of authentication dialog box, it is not happening because this is an iFrame, and there's actually many ways to log in users into Facebook. You could be logging somebody in from an actual external page. This one is an iFrame, so we're going to have to modify our link a little bit and give a little bit more information to the getLoginUrl command.
So we'll switch back over here, we'll add a "target="_top" that will force Facebook to load a page on top of the current page and not into the iFrame, that is the canvas inside of Facebook, and I'm going to save that. I'll switch back over to my app, take a look right here. And I'm going to click login and see what happens now. And now it's taken us to the right place. I want to modify something else, because if I click on this Go to App, I might actually return to the website that has my page and not back into Facebook.
So although this is almost perfect, I'm going to hit the back button, I'm going to fix something else. And I found that this login procedure is something that you're going to have to play around with. When we get the login URL, I'm also going to add a couple of things right here. I'm going to add an array here, and I'll put this on some new lines. I'm going to pass a display parameter here, and I'm actually going to request this to be on a pop-up. Even though we're not going to see a pop-up, this is what actually worked for me, so next, I'll pass it a redirect_uri, and that is going to go back into our Facebook page.
And I'm going to save that, I'll go back into my page, refresh, and now I'll click the login link, you can see that it's requesting just my basic info, and then I'll click on Go to App, and that takes as back into our original page, and it's showing us the user ID for this user, which is exactly what we want. I want to tell you this is one place where you want to play around with the options a little bit. I found different things that I thought would work on a login and users not working and some things that shouldn't work actually creating the desired affect.
So make sure you read up on the Get Login URL documentation, especially on the scope section. You can take a look at the permissions that you can request from the user and learning to log in users into our application is what's going to create a connection that authenticates your use of the social data. And that's a really important part of working with Facebook. After all, you just don't want anyone to be able to access data from your users.
There are currently no FAQs about Building Facebook Applications with PHP and MySQL.
Access exercise files from a button right under the course name.
Search within course videos and transcripts, and jump right to the results.
Remove icons showing you already watched videos if you want to start over.
Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.
Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.