# Facebook SDK for PHP Reference (v5) Below is the API reference for the Facebook SDK for PHP. # Core API {#core-api} These classes are at the core of the Facebook SDK for PHP. %FB(devsite:markdown-wiki:table { columns: ['Class name','Description',], rows: [ [ '[`Facebook\\Facebook`](/docs/php/Facebook)', 'The main service object that helps tie all the SDK components together.', ], [ '[`Facebook\\FacebookApp`](/docs/php/FacebookApp)', 'An entity that represents a Facebook app and is required to send requests to Graph.', ], ], }) # Authentication {#authentication} These classes facilitate authenticating a Facebook user with OAuth 2.0. %FB(devsite:markdown-wiki:table { columns: ['Class name','Description',], rows: [ [ '[`Facebook\\Helpers\\FacebookRedirectLoginHelper`](/docs/php/FacebookRedirectLoginHelper)', 'An OAuth 2.0 service to obtain a user access token from a redirect using a "Log in with Facebook" link.', ], [ '[`Facebook\\Authentication\\AccessToken`](/docs/php/AccessToken)', 'An entity that represents an access token.', ], [ '`Facebook\\Authentication\\AccessTokenMetadata`', 'An entity that represents metadata from an access token.', ], [ '`Facebook\\Authentication\\OAuth2Client`', 'An OAuth 2.0 client that sends and receives HTTP requests related to user authentication.', ], ], }) # Requests and Responses {#requests-and-responses} These classes are used in a Graph API request/response cycle. %FB(devsite:markdown-wiki:table { columns: ['Class name','Description',], rows: [ [ '[`Facebook\\FacebookRequest`](/docs/php/FacebookRequest)', 'An entity that represents an HTTP request to be sent to Graph.', ], [ '[`Facebook\\FacebookResponse`](/docs/php/FacebookResponse)', 'An entity that represents an HTTP response from Graph.', ], [ '[`Facebook\\FacebookBatchRequest`](/docs/php/FacebookBatchRequest)', 'An entity that represents an HTTP batch request to be sent to Graph.', ], [ '[`Facebook\\FacebookBatchResponse`](/docs/php/FacebookBatchResponse)', 'An entity that represents an HTTP response from Graph after sending a batch request.', ], [ '[`Facebook\\FacebookClient`](/docs/php/FacebookClient)', 'A service object that sends HTTP requests and receives HTTP responses to and from the Graph API.', ], ], }) # Signed Requests {#signed-requests} Classes to help obtain and manage signed requests. %FB(devsite:markdown-wiki:table { columns: ['Class name','Description',], rows: [ [ '[`Facebook\\Helpers\\FacebookJavaScriptHelper`](/docs/php/FacebookJavaScriptHelper)', 'Used to obtain an access token or signed request from the cookie set by the JavaScript SDK.', ], [ '[`Facebook\\Helpers\\FacebookCanvasHelper`](/docs/php/FacebookCanvasHelper)', 'Used to obtain an access token or signed request from within the context of an app canvas.', ], [ '[`Facebook\\Helpers\\FacebookPageTabHelper`](/docs/php/FacebookPageTabHelper)', 'Used to obtain an access token or signed request from within the context of a page tab.', ], [ '[`Facebook\\SignedRequest`](/docs/php/SignedRequest)', 'An entity that represents a signed request.', ], ], }) # Core Exceptions {#core-exceptions} These are the core exceptions that the SDK will throw when an error occurs. %FB(devsite:markdown-wiki:table { columns: ['Class name','Description',], rows: [ [ '[`Facebook\\Exceptions\\FacebookSDKException`](/docs/php/FacebookSDKException)', 'The base exception to all exceptions thrown by the SDK. Thrown when there is a non-Graph-response-related error.', ], [ '[`Facebook\\Exceptions\\FacebookResponseException`](/docs/php/FacebookResponseException)', 'The base exception to all Graph error responses. This exception is never thrown directly.', ], ], }) # Graph Nodes and Edges {#graph-nodes-and-edges} Graph nodes are collections that represent nodes returned by the Graph API. And Graph edges are a collection of nodes returned from an edge on the Graph API. %FB(devsite:markdown-wiki:table { columns: ['Class name','Description',], rows: [ [ '[`Facebook\\GraphNodes\\GraphNode`](/docs/php/GraphNode)', 'The base collection object that represents a generic node.', ], [ '[`Facebook\\GraphNodes\\GraphEdge`](/docs/php/GraphEdge)', 'A collection of GraphNode\'s with special methods to help paginate over the edge.', ], [ '[`Facebook\\GraphNodes\\GraphAchievement`](/docs/php/GraphNode#achievement-instance-methods)', 'A collection that represents an Achievement node.', ], [ '[`Facebook\\GraphNodes\\GraphAlbum`](/docs/php/GraphNode#album-instance-methods)', 'A collection that represents an Album node.', ], [ '[`Facebook\\GraphNodes\\GraphLocation`](/docs/php/GraphNode#location-instance-methods)', 'A collection that represents a Location node.', ], [ '[`Facebook\\GraphNodes\\GraphPage`](/docs/php/GraphNode#page-instance-methods)', 'A collection that represents a Page node.', ], [ '[`Facebook\\GraphNodes\\GraphPicture`](/docs/php/GraphNode#picture-instance-methods)', 'A collection that represents a Picture node.', ], [ '[`Facebook\\GraphNodes\\GraphUser`](/docs/php/GraphNode#user-instance-methods)', 'A collection that represents a User node.', ], ], }) # File Uploads {#file-uploads} These are entities that represent files to be uploaded with a Graph request. %FB(devsite:markdown-wiki:table { columns: ['Class name','Description',], rows: [ [ '[`Facebook\\FileUpload\\FacebookFile`](/docs/php/FacebookFile)', 'Represents a generic file to be uploaded to the Graph API.', ], [ '[`Facebook\\FileUpload\\FacebookVideo`](/docs/php/FacebookVideo)', 'Represents a video file to be uploaded to the Graph API.', ], ], }) # Extensibility {#extensibility} You can overwrite certain functionality of the SDK by coding to an interface and injecting an instance of your custom functionality. %FB(devsite:markdown-wiki:table { columns: ['Interface name','Description',], rows: [ [ '`Facebook\\HttpClients\\ FacebookHttpClientInterface`', 'An interface to code your own HTTP client implementation.', ], [ '`Facebook\\Http\\GraphRawResponse`', 'An entity that is returned from an instance of a `FacebookHttpClientInterface` that represents a raw HTTP response from the Graph API.', ], [ '[`Facebook\\PersistentData\\PersistentDataInterface`](/docs/php/PersistentDataInterface)', 'An interface to code your own persistent data storage implementation.', ], [ '[`Facebook\\Url\\UrlDetectionInterface`](/docs/php/UrlDetectionInterface)', 'An interface to code your own URL detection logic.', ], [ '[`Facebook\\PseudoRandomString\\ PseudoRandomStringGeneratorInterface`](/docs/php/PseudoRandomStringGeneratorInterface)', 'An interface to code your own cryptographically secure pseudo-random string generator.', ], ], })