Class

FacebookApiException

Thrown when an API call returns an exception.

Methods

__construct

__construct()

Make a new API Exception with the given result.

Parameters:array – The result from the API server

getResult

getResult()

Return the associated result object returned by the API server.

Return type:array The result from the API server

getType

getType()

Returns the associated type for the error. This will default to ‘Exception’ when a type is not available.

Return type:string

__toString

__toString()

To make debugging easier.

Return type:string The string representation of the error

Class

BaseFacebook

Provides access to the Facebook Platform. This class provides a majority of the functionality needed, but the class is abstract because it is designed to be sub-classed. The subclass must implement the four abstract methods listed at the bottom of the file.

Methods

__construct

__construct()

Initialize a Facebook Application.

The configuration: - appId: the application ID - secret: the application secret - fileUpload: (optional) boolean indicating if file uploads are enabled

Parameters:array – The application configuration

setAppId

setAppId()

Set the Application ID.

Parameters:string – The Application ID
Return type:BaseFacebook

getAppId

getAppId()

Get the Application ID.

Return type:string the Application ID

setApiSecret

setApiSecret()

Set the App Secret.

Parameters:string – The App Secret
Return type:BaseFacebook
Deprecated :

setAppSecret

setAppSecret()

Set the App Secret.

Parameters:string – The App Secret
Return type:BaseFacebook

getApiSecret

getApiSecret()

Get the App Secret.

Return type:string the App Secret
Deprecated :

getAppSecret

getAppSecret()

Get the App Secret.

Return type:string the App Secret

setFileUploadSupport

setFileUploadSupport()

Set the file upload support status.

Parameters:boolean – The file upload support status.
Return type:BaseFacebook

getFileUploadSupport

getFileUploadSupport()

Get the file upload support status.

Return type:boolean true if and only if the server supports file upload.

useFileUploadSupport

useFileUploadSupport()

DEPRECATED! Please use getFileUploadSupport instead.

Get the file upload support status.

Return type:boolean true if and only if the server supports file upload.

setAccessToken

setAccessToken()

Sets the access token for api calls. Use this if you get your access token by other means and just want the SDK to use it.

Parameters:string – an access token.
Return type:BaseFacebook

setExtendedAccessToken

setExtendedAccessToken()

Extend an access token, while removing the short-lived token that might have been generated via client-side flow. Thanks to http://bit.ly/b0Pt0H for the workaround.

getAccessToken

getAccessToken()

Determines the access token that should be used for API calls. The first time this is called, $this->accessToken is set equal to either a valid user access token, or it’s set to the application access token if a valid user access token wasn’t available. Subsequent calls return whatever the first call returned.

Return type:string The access token

getUserAccessToken

getUserAccessToken()

Determines and returns the user access token, first using the signed request if present, and then falling back on the authorization code if present. The intent is to return a valid user access token, or false if one is determined to not be available.

Return type:string A valid user access token, or false if one could not be determined.

getSignedRequest

getSignedRequest()

Retrieve the signed request, either from a request parameter or, if not present, from a cookie.

Return type:string the signed request, if available, or null otherwise.

getUser

getUser()

Get the UID of the connected user, or 0 if the Facebook user is not connected.

Return type:string the UID if available.

getUserFromAvailableData

getUserFromAvailableData()

Determines the connected user by first examining any signed requests, then considering an authorization code, and then falling back to any persistent store storing the user.

Return type:integer The id of the connected Facebook user, or 0 if no such user exists.

getLoginUrl

getLoginUrl()

Get a Login URL for use with redirects. By default, full page redirect is assumed. If you are using the generated URL with a window.open() call in JavaScript, you can pass in display=popup as part of the $params.

The parameters: - redirect_uri: the url to go to after a successful login - scope: comma separated list of requested extended perms

Parameters:array – Provide custom parameters
Return type:string The URL for the login flow

getLogoutUrl

getLogoutUrl()

Get a Logout URL suitable for use with redirects.

The parameters: - next: the url to go to after a successful logout

Parameters:array – Provide custom parameters
Return type:string The URL for the logout flow

getLoginStatusUrl

getLoginStatusUrl()

Get a login status URL to fetch the status from Facebook.

The parameters: - ok_session: the URL to go to if a session is found - no_session: the URL to go to if the user is not connected - no_user: the URL to go to if the user is not signed into facebook

Parameters:array – Provide custom parameters
Return type:string The URL for the logout flow

api

api()

Make an API call.

Return type:mixed The decoded response

getSignedRequestCookieName

getSignedRequestCookieName()

Constructs and returns the name of the cookie that potentially houses the signed request for the app user. The cookie is not set by the BaseFacebook class, but it may be set by the JavaScript SDK.

Return type:string the name of the cookie that would house the signed request value.

getMetadataCookieName

getMetadataCookieName()

Constructs and returns the name of the coookie that potentially contain metadata. The cookie is not set by the BaseFacebook class, but it may be set by the JavaScript SDK.

Return type:string the name of the cookie that would house metadata.

getCode

getCode()

Get the authorization code from the query parameters, if it exists, and otherwise return false to signal no authorization code was discoverable.

Return type:mixed The authorization code, or false if the authorization code could not be determined.

getUserFromAccessToken

getUserFromAccessToken()

Retrieves the UID with the understanding that $this->accessToken has already been set and is seemingly legitimate. It relies on Facebook’s Graph API to retrieve user information and then extract the user ID.

Return type:integer Returns the UID of the Facebook user, or 0 if the Facebook user could not be determined.

getApplicationAccessToken

getApplicationAccessToken()

Returns the access token that should be used for logged out users when no authorization code is available.

Return type:string The application access token, useful for gathering public information about users and applications.

establishCSRFTokenState

establishCSRFTokenState()

Lays down a CSRF state token for this process.

Return type:void

getAccessTokenFromCode

getAccessTokenFromCode()

Retrieves an access token for the given authorization code (previously generated from www.facebook.com on behalf of a specific user). The authorization code is sent to graph.facebook.com and a legitimate access token is generated provided the access token and the user for which it was generated all match, and the user is either logged in to Facebook or has granted an offline access permission.

Parameters:string – An authorization code.
Return type:mixed An access token exchanged for the authorization code, or false if an access token could not be generated.

_restserver

_restserver()

Invoke the old restserver.php endpoint.

Parameters:array – Method call object
Return type:mixed The decoded response object
Throws :FacebookApiException

isVideoPost

isVideoPost()

Return true if this is video post.

Parameters:
  • string – The path
  • string – The http method (default ‘GET’)
Return type:

boolean true if this is video post

_graph

_graph()

Invoke the Graph API.

Parameters:
  • string – The path (required)
  • string – The http method (default ‘GET’)
  • array – The query/post data
Return type:

mixed The decoded response object

Throws :

FacebookApiException

_oauthRequest

_oauthRequest()

Make a OAuth Request.

Parameters:
  • string – The path (required)
  • array – The query/post data
Return type:

string The decoded response object

Throws :

FacebookApiException

makeRequest

makeRequest()

Makes an HTTP request. This method can be overridden by subclasses if developers want to do fancier things or use something other than curl to make the request.

Parameters:
  • string – The URL to make the request to
  • array – The parameters to use for the POST body
  • CurlHandler – Initialized curl handle
Return type:

string The response text

parseSignedRequest

parseSignedRequest()

Parses a signed_request and validates the signature.

Parameters:string – A signed token
Return type:array The payload inside it or null if the sig is wrong

makeSignedRequest

makeSignedRequest()

Makes a signed_request blob using the given data.

Parameters:array – data array.
Return type:string The signed request.

getApiUrl

getApiUrl()

Build the URL for api given parameters.

Parameters:$method – the method name.
Return type:string The URL for the given parameters

getUrl

getUrl()

Build the URL for given domain alias, path and parameters.

Parameters:
  • $name – The name of the domain
  • $path – Optional path (without a leading slash)
  • $params – Optional query parameters
Return type:

string The URL for the given parameters

getHttpHost

getHttpHost()

getHttpProtocol

getHttpProtocol()

getBaseDomain

getBaseDomain()

Get the base domain used for the cookie.

getCurrentUrl

getCurrentUrl()

Returns the Current URL, stripping it of known FB parameters that should not persist.

Return type:string The current URL

shouldRetainParam

shouldRetainParam()

Returns true if and only if the key or key/value pair should be retained as part of the query string. This amounts to a brute-force search of the very small list of Facebook-specific params that should be stripped out.

Parameters:string – A key or key/value pair within a URL’s query (e.g. ‘foo=a’, ‘foo=’, or ‘foo’.
Return type:boolean

throwAPIException

throwAPIException()

Analyzes the supplied result to see if it was thrown because the access token is no longer valid. If that is the case, then we destroy the session.

Parameters:$result – A record storing the error message returned by a failed API call.

errorLog

errorLog()

Prints to the error log if you aren’t in command line mode.

Parameters:string – Log message

base64UrlDecode

base64UrlDecode()

Base64 encoding that doesn’t need to be urlencode()ed. Exactly the same as base64_encode except it uses

  • instead of +

_ instead of / No padded =

Parameters:string – base64UrlEncoded string
Return type:string

base64UrlEncode

base64UrlEncode()

Base64 encoding that doesn’t need to be urlencode()ed. Exactly the same as base64_encode except it uses

  • instead of +

_ instead of /

Parameters:string – string
Return type:string base64Url encoded string

destroySession

destroySession()

Destroy the current session

getMetadataCookie

getMetadataCookie()

Parses the metadata cookie that our Javascript API set

Return type:an array mapping key to value

isAllowedDomain

isAllowedDomain()

endsWith

endsWith()

setPersistentData

setPersistentData()

Stores the given ($key, $value) pair, so that future calls to getPersistentData($key) return $value. This call may be in another request.

Parameters:
  • string
  • array
Return type:

void

getPersistentData

getPersistentData()

Get the data for $key, persisted by BaseFacebook::setPersistentData()

Parameters:
  • string – The key of the data to retrieve
  • boolean – The default value to return if $key is not found
Return type:

mixed

clearPersistentData

clearPersistentData()

Clear the data with $key from the persistent storage

Parameters:string
Return type:void

clearAllPersistentData

clearAllPersistentData()

Clear all data from the persistent storage

Return type:void

Constants

VERSION

Version.

SIGNED_REQUEST_ALGORITHM

Signed Request Algorithm.