com.restfb
Interface FacebookClient

All Known Implementing Classes:
DefaultFacebookClient

public interface FacebookClient

Specifies how a Facebook Graph API client must operate.

Projects that need to access the old REST API should use LegacyFacebookClient instead. You might choose to do this because you have a legacy codebase or you need functionality that is not yet available in the Graph API.

If you'd like to...

Author:
Mark Allen, Scott Hernandez, Mattia Tommasone

Nested Class Summary
static class FacebookClient.AccessToken
          Represents an access token/expiration date pair.
 
Method Summary
 List<FacebookClient.AccessToken> convertSessionKeysToAccessTokens(String appId, String secretKey, String... sessionKeys)
          Converts an arbitrary number of sessionKeys to OAuth access tokens.
 boolean deleteObject(String object)
          Performs a Graph API delete operation on the given object.
 List<BatchResponse> executeBatch(BatchRequest... batchRequests)
          Executes operations as a batch using the Batch API.
 List<BatchResponse> executeBatch(List<BatchRequest> batchRequests, List<BinaryAttachment> binaryAttachments)
          Executes operations as a batch with binary attachments using the Batch API.
<T> T
executeMultiquery(Map<String,String> queries, Class<T> objectType, Parameter... parameters)
          Executes an FQL multiquery, which allows you to batch multiple queries into a single request.
<T> List<T>
executeQuery(String query, Class<T> objectType, Parameter... parameters)
          Executes an FQL query, mapping the resultset to a List of instances of objectType.
<T> Connection<T>
fetchConnection(String connection, Class<T> connectionType, Parameter... parameters)
          Fetches a Graph API Connection type, mapping the result to an instance of connectionType.
<T> Connection<T>
fetchConnectionPage(String connectionPageUrl, Class<T> connectionType)
          Fetches a previous/next page of a Graph API Connection type, mapping the result to an instance of connectionType.
<T> T
fetchObject(String object, Class<T> objectType, Parameter... parameters)
          Fetches a single Graph API object, mapping the result to an instance of objectType.
<T> T
fetchObjects(List<String> ids, Class<T> objectType, Parameter... parameters)
          Fetches multiple Graph API objects in a single call, mapping the results to an instance of objectType.
 JsonMapper getJsonMapper()
          Gets the JsonMapper used to convert Facebook JSON to Java objects.
 WebRequestor getWebRequestor()
          Gets the WebRequestor used to talk to the Facebook API endpoints.
<T> T
publish(String connection, Class<T> objectType, BinaryAttachment binaryAttachment, Parameter... parameters)
          Performs a Graph API publish operation on the given connection and includes a file - a photo, for example - in the publish request, and mapping the result to an instance of objectType.
<T> T
publish(String connection, Class<T> objectType, Parameter... parameters)
          Performs a Graph API publish operation on the given connection, mapping the result to an instance of objectType.
 

Method Detail

fetchObject

<T> T fetchObject(String object,
                  Class<T> objectType,
                  Parameter... parameters)
Fetches a single Graph API object, mapping the result to an instance of objectType.

Type Parameters:
T - Java type to map to.
Parameters:
object - ID of the object to fetch, e.g. "me".
objectType - Object type token.
parameters - URL parameters to include in the API call (optional).
Returns:
An instance of type objectType which contains the requested object's data.
Throws:
FacebookException - If an error occurs while performing the API call.

fetchObjects

<T> T fetchObjects(List<String> ids,
                   Class<T> objectType,
                   Parameter... parameters)
Fetches multiple Graph API objects in a single call, mapping the results to an instance of objectType.

You'll need to write your own container type (objectType) to hold the results. See http://restfb.com for an example of how to do this.

Type Parameters:
T - Java type to map to.
Parameters:
ids - IDs of the objects to fetch, e.g. "me", "arjun".
objectType - Object type token.
parameters - URL parameters to include in the API call (optional).
Returns:
An instance of type objectType which contains the requested objects' data.
Throws:
FacebookException - If an error occurs while performing the API call.

fetchConnection

<T> Connection<T> fetchConnection(String connection,
                                  Class<T> connectionType,
                                  Parameter... parameters)
Fetches a Graph API Connection type, mapping the result to an instance of connectionType.

Type Parameters:
T - Java type to map to.
Parameters:
connection - The name of the connection, e.g. "me/feed".
connectionType - Connection type token.
parameters - URL parameters to include in the API call (optional).
Returns:
An instance of type connectionType which contains the requested Connection's data.
Throws:
FacebookException - If an error occurs while performing the API call.

fetchConnectionPage

<T> Connection<T> fetchConnectionPage(String connectionPageUrl,
                                      Class<T> connectionType)
Fetches a previous/next page of a Graph API Connection type, mapping the result to an instance of connectionType.

Type Parameters:
T - Java type to map to.
Parameters:
connectionPageUrl - The URL of the connection page to fetch, usually retrieved via Connection.getPreviousPageUrl() or Connection.getNextPageUrl().
connectionType - Connection type token.
Returns:
An instance of type connectionType which contains the requested Connection's data.
Throws:
FacebookException - If an error occurs while performing the API call.

executeQuery

<T> List<T> executeQuery(String query,
                         Class<T> objectType,
                         Parameter... parameters)
Executes an FQL query, mapping the resultset to a List of instances of objectType.

Type Parameters:
T - Java type to map to.
Parameters:
query - The FQL query to execute, e.g. "SELECT name FROM user WHERE uid=220439 or uid=7901103".
objectType - Resultset object type token.
parameters - URL parameters to include in the API call (optional).
Returns:
A list of instances of objectType which map to the query results.
Throws:
FacebookException - If an error occurs while performing the API call.

executeMultiquery

<T> T executeMultiquery(Map<String,String> queries,
                        Class<T> objectType,
                        Parameter... parameters)
Executes an FQL multiquery, which allows you to batch multiple queries into a single request.

You'll need to write your own container type (objectType) to hold the results. See http://restfb.com for an example of how to do this.

Type Parameters:
T - Java type to map to.
Parameters:
queries - A mapping of query names to queries. This is marshaled to JSON and sent over the wire to the Facebook API endpoint as the queries parameter.
objectType - Object type token.
parameters - URL parameters to include in the API call (optional).
Returns:
An instance of type objectType which contains the requested objects' data.
Throws:
FacebookException - If an error occurs while performing the API call.

executeBatch

List<BatchResponse> executeBatch(BatchRequest... batchRequests)
Executes operations as a batch using the Batch API.

Parameters:
batchRequests - The operations to execute.
Returns:
The execution results in the order in which the requests were specified.

executeBatch

List<BatchResponse> executeBatch(List<BatchRequest> batchRequests,
                                 List<BinaryAttachment> binaryAttachments)
Executes operations as a batch with binary attachments using the Batch API.

Parameters:
batchRequests - The operations to execute.
binaryAttachments - Binary attachments referenced by the batch requests.
Returns:
The execution results in the order in which the requests were specified.
Since:
1.6.5

publish

<T> T publish(String connection,
              Class<T> objectType,
              Parameter... parameters)
Performs a Graph API publish operation on the given connection, mapping the result to an instance of objectType.

Type Parameters:
T - Java type to map to.
Parameters:
connection - The Connection to publish to.
objectType - Object type token.
parameters - URL parameters to include in the API call.
Returns:
An instance of type objectType which contains the Facebook response to your publish request.
Throws:
FacebookException - If an error occurs while performing the API call.

publish

<T> T publish(String connection,
              Class<T> objectType,
              BinaryAttachment binaryAttachment,
              Parameter... parameters)
Performs a Graph API publish operation on the given connection and includes a file - a photo, for example - in the publish request, and mapping the result to an instance of objectType.

Type Parameters:
T - Java type to map to.
Parameters:
connection - The Connection to publish to.
objectType - Object type token.
binaryAttachment - The file to include in the publish request.
parameters - URL parameters to include in the API call.
Returns:
An instance of type objectType which contains the Facebook response to your publish request.
Throws:
FacebookException - If an error occurs while performing the API call.

deleteObject

boolean deleteObject(String object)
Performs a Graph API delete operation on the given object.

Parameters:
object - The ID of the object to delete.
Returns:
true if Facebook indicated that the object was successfully deleted, false otherwise.
Throws:
FacebookException - If an error occurred while attempting to delete the object.

convertSessionKeysToAccessTokens

List<FacebookClient.AccessToken> convertSessionKeysToAccessTokens(String appId,
                                                                  String secretKey,
                                                                  String... sessionKeys)
Converts an arbitrary number of sessionKeys to OAuth access tokens.

See the Facebook Platform Upgrade Guide for details on how this process works and why you should convert your application's session keys if you haven't already.

Parameters:
appId - A Facebook application ID.
secretKey - A Facebook application secret key.
sessionKeys - The Old REST API session keys to be converted to OAuth access tokens.
Returns:
A list of access tokens ordered to correspond to the sessionKeys argument list.
Throws:
FacebookException - If an error occurs while attempting to convert the session keys to API keys.
Since:
1.6

getJsonMapper

JsonMapper getJsonMapper()
Gets the JsonMapper used to convert Facebook JSON to Java objects.

Returns:
The JsonMapper used to convert Facebook JSON to Java objects.
Since:
1.6.7

getWebRequestor

WebRequestor getWebRequestor()
Gets the WebRequestor used to talk to the Facebook API endpoints.

Returns:
The WebRequestor used to talk to the Facebook API endpoints.
Since:
1.6.7


RestFB 1.6.8. Copyright © 2010-2011 Mark Allen. All Rights Reserved.