Package com.restfb
Class DefaultThreadsClient
java.lang.Object
com.restfb.DefaultFacebookClient
com.restfb.DefaultThreadsClient
- All Implemented Interfaces:
FacebookClient
A class representing a client for interacting with Facebook's Threads API. This class extends the
DefaultFacebookClient and provides additional methods for accessing Threads-specific functionalities.
-
Nested Class Summary
Nested classes/interfaces inherited from class com.restfb.DefaultFacebookClient
DefaultFacebookClient.Requestor
-
Field Summary
Modifier and TypeFieldDescriptionprotected static final String
Reserved access token parameter name.protected static final String
Reserved application secret proof parameter name.protected static final String
Reserved "result format" parameter name.protected JsonMapper
Handles mapping Facebook response JSON to Java objects.protected static final String
Reserved method override parameter name.protected WebRequestor
HandlesGET
s andPOST
s to the Facebook API endpoint.Fields inherited from class com.restfb.DefaultFacebookClient
accessToken, accessTokenInHeader, ALGORITHM, apiVersion, APP_ID, APP_SECRET, appSecret, CANNOT_EXTRACT_ACCESS_TOKEN_MESSAGE, CLIENT_ID, CODE, CONNECTION, CONNECTION_TYPE, GRANT_TYPE, httpDeleteFallback, IDS_PARAM_NAME, PARAM_CLIENT_SECRET, PATH_OAUTH_ACCESS_TOKEN, REDIRECT_URI, SCOPE
-
Constructor Summary
ConstructorDescriptionDefaultThreadsClient
(Version version) DefaultThreadsClient
(String accessToken, Version apiVersion) DefaultThreadsClient
(String accessToken, WebRequestor webRequestor, JsonMapper jsonMapper, Version apiVersion) DefaultThreadsClient
(String accessToken, String appSecret, Version apiVersion) DefaultThreadsClient
(String accessToken, String appSecret, WebRequestor webRequestor, JsonMapper jsonMapper, Version apiVersion) -
Method Summary
Modifier and TypeMethodDescriptionprotected String
createBaseUrlForEndpoint
(String apiCall, boolean hasAttachment, boolean hasReel) createClientWithAccessToken
(String accessToken) creates a newFacebookClient
from an old one.getLoginDialogUrl
(String appId, String redirectUri, ScopeBuilder scope, Parameter... parameters) generates the login dialog urlgetLoginDialogUrl
(String appId, String redirectUri, ScopeBuilder scope, String state, Parameter... parameters) generates the login dialog urlobtainExtendedAccessToken
(String appId, String appSecret) Convenience method which invokesFacebookClient.obtainExtendedAccessToken(String, String, String)
with the current access token.obtainExtendedAccessToken
(String appId, String appSecret, String accessToken) Obtains an extended access token for the given existing, non-expired, short-lived access_token.Obtain a refreshed Threads extended access token.obtainUserAccessToken
(String clientId, String clientSecret, String redirectUri, String code) Obtains an access token which can be used to perform Graph API operations on behalf of a user.protected Parameter[]
parametersWithAdditionalParameter
(Parameter parameter, Parameter... parameters) Appends the givenparameter
to the givenparameters
array.protected String
urlEncodedValueForParameterName
(String name, String value) Gets the URL-encoded version of the givenvalue
for the parameter namedname
.protected void
verifyParameterLegality
(Parameter... parameters) Verifies that the provided parameter names don't collide with the ones we internally pass along to Facebook.Methods inherited from class com.restfb.DefaultFacebookClient
convertSessionKeysToAccessTokens, createEndpointForApiCall, debugToken, deleteObject, executeBatch, executeBatch, executeBatch, fetchConnection, fetchConnectionPage, fetchDeviceCode, fetchObject, fetchObjects, getAccessTokenFromResponse, getFacebookEndpointUrls, getFacebookExceptionGenerator, getFacebookGraphEndpointUrl, getFacebookGraphVideoEndpointUrl, getFacebookReelsUploadEndpointUrl, getGenericLoginDialogUrl, getJsonMapper, getLogoutUrl, getWebRequestor, isHttpDeleteFallback, makeRequest, makeRequest, makeRequest, makeRequestAndProcessResponse, obtainAppAccessToken, obtainAppSecretProof, obtainDeviceAccessToken, parseSignedRequest, publish, publish, publish, publish, setFacebookEndpointUrls, setFacebookExceptionGenerator, setHeaderAuthorization, setHttpDeleteFallback, toParameterString, toParameterString, urlDecodeSignedRequestToken, verifySignedRequest
-
Field Details
-
webRequestor
HandlesGET
s andPOST
s to the Facebook API endpoint. -
jsonMapper
Handles mapping Facebook response JSON to Java objects. -
METHOD_PARAM_NAME
Reserved method override parameter name.- See Also:
-
FORMAT_PARAM_NAME
Reserved "result format" parameter name.- See Also:
-
ACCESS_TOKEN_PARAM_NAME
Reserved access token parameter name.- See Also:
-
APP_SECRET_PROOF_PARAM_NAME
Reserved application secret proof parameter name.- See Also:
-
-
Constructor Details
-
DefaultThreadsClient
-
DefaultThreadsClient
-
DefaultThreadsClient
-
DefaultThreadsClient
public DefaultThreadsClient(String accessToken, WebRequestor webRequestor, JsonMapper jsonMapper, Version apiVersion) -
DefaultThreadsClient
public DefaultThreadsClient(String accessToken, String appSecret, WebRequestor webRequestor, JsonMapper jsonMapper, Version apiVersion)
-
-
Method Details
-
getLoginDialogUrl
public String getLoginDialogUrl(String appId, String redirectUri, ScopeBuilder scope, String state, Parameter... parameters) Description copied from interface:FacebookClient
generates the login dialog url- Specified by:
getLoginDialogUrl
in interfaceFacebookClient
- Overrides:
getLoginDialogUrl
in classDefaultFacebookClient
- Parameters:
appId
- The ID of your app, found in your app's dashboard.redirectUri
- The URL that you want to redirect the person logging in back to. This URL will capture the response from the Login Dialog. If you are using this in a webview within a desktop app, this must be set tohttps://www.facebook.com/connect/login_success.html
.scope
- List of Permissions to request from the person using your app.state
- The state parameter is used to prevent CSRF attacks.parameters
- List of additional parameters- Returns:
- the login dialog url
-
getLoginDialogUrl
public String getLoginDialogUrl(String appId, String redirectUri, ScopeBuilder scope, Parameter... parameters) Description copied from interface:FacebookClient
generates the login dialog url- Specified by:
getLoginDialogUrl
in interfaceFacebookClient
- Overrides:
getLoginDialogUrl
in classDefaultFacebookClient
- Parameters:
appId
- The ID of your app, found in your app's dashboard.redirectUri
- The URL that you want to redirect the person logging in back to. This URL will capture the response from the Login Dialog. If you are using this in a webview within a desktop app, this must be set tohttps://www.facebook.com/connect/login_success.html
.scope
- List of Permissions to request from the person using your app.parameters
- List of additional parameters- Returns:
- the login dialog url
-
obtainUserAccessToken
public AccessToken obtainUserAccessToken(String clientId, String clientSecret, String redirectUri, String code) Description copied from interface:FacebookClient
Obtains an access token which can be used to perform Graph API operations on behalf of a user.See Access Tokens.
- Specified by:
obtainUserAccessToken
in interfaceFacebookClient
- Overrides:
obtainUserAccessToken
in classDefaultFacebookClient
- Parameters:
clientId
- The ID of the app for which you'd like to obtain an access token.clientSecret
- The secret for the app for which you'd like to obtain an access token.redirectUri
- The redirect URI which was used to obtain theverificationCode
.code
- The verification code in the Graph API callback to the redirect URI.- Returns:
- The access token for the user identified by
appId
,appSecret
,redirectUri
andverificationCode
. - See Also:
-
obtainExtendedAccessToken
Description copied from interface:FacebookClient
Obtains an extended access token for the given existing, non-expired, short-lived access_token.- Specified by:
obtainExtendedAccessToken
in interfaceFacebookClient
- Overrides:
obtainExtendedAccessToken
in classDefaultFacebookClient
- Parameters:
appId
- The ID of the app for which you'd like to obtain an extended access token.appSecret
- The secret for the app for which you'd like to obtain an extended access token.accessToken
- The non-expired, short-lived access token to extend.- Returns:
- An extended access token for the given
accessToken
. - See Also:
-
obtainExtendedAccessToken
Description copied from interface:FacebookClient
Convenience method which invokesFacebookClient.obtainExtendedAccessToken(String, String, String)
with the current access token.- Specified by:
obtainExtendedAccessToken
in interfaceFacebookClient
- Overrides:
obtainExtendedAccessToken
in classDefaultFacebookClient
- Parameters:
appId
- The ID of the app for which you'd like to obtain an extended access token.appSecret
- The secret for the app for which you'd like to obtain an extended access token.- Returns:
- An extended access token for the given
accessToken
. - See Also:
-
obtainRefreshedExtendedAccessToken
Obtain a refreshed Threads extended access token.This method is used to refresh an existing Threads extended access token. Extended access tokens expire after a certain period of time, and this method allows you to obtain a new one using the refresh token provided with the original extended access token.
- Specified by:
obtainRefreshedExtendedAccessToken
in interfaceFacebookClient
- Overrides:
obtainRefreshedExtendedAccessToken
in classDefaultFacebookClient
- Returns:
- A new
AccessToken
object containing the refreshed access token, expiration time, and token type. - Throws:
FacebookResponseContentException
- If the response from the Facebook API cannot be parsed or if the access token cannot be extracted from the response.
-
createClientWithAccessToken
Description copied from interface:FacebookClient
creates a newFacebookClient
from an old one.App secret and api version are taken from the original client.
- Specified by:
createClientWithAccessToken
in interfaceFacebookClient
- Overrides:
createClientWithAccessToken
in classDefaultFacebookClient
- Parameters:
accessToken
- this accesstoken is used for the new client- Returns:
- a new Facebookclient
-
createBaseUrlForEndpoint
- Overrides:
createBaseUrlForEndpoint
in classDefaultFacebookClient
-
parametersWithAdditionalParameter
protected Parameter[] parametersWithAdditionalParameter(Parameter parameter, Parameter... parameters) Appends the givenparameter
to the givenparameters
array.- Parameters:
parameter
- The parameter value to append.parameters
- The parameters to which the givenparameter
is appended.- Returns:
- A new array which contains both
parameter
andparameters
.
-
urlEncodedValueForParameterName
Gets the URL-encoded version of the givenvalue
for the parameter namedname
.Includes special-case handling for access token parameters where we check if the token is already URL-encoded - if so, we don't encode again. All other parameter types are always URL-encoded.
- Parameters:
name
- The name of the parameter whose value should be URL-encoded and returned.value
- The value of the parameter which should be URL-encoded and returned.- Returns:
- The URL-encoded version of the given
value
.
-
verifyParameterLegality
Verifies that the provided parameter names don't collide with the ones we internally pass along to Facebook.- Parameters:
parameters
- The parameters to check.- Throws:
IllegalArgumentException
- If there's a parameter name collision.
-