API Graph versión

/{app-id}/subscriptions

Este perímetro te permite configurar las suscripciones a webhooks en una app.

Lectura

Explorador de la API Graph
GET /v21.0/{app-id}/subscriptions HTTP/1.1
Host: graph.facebook.com
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->get(
    '/{app-id}/subscriptions',
    '{access-token}'
  );
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{app-id}/subscriptions",
    null,
    HttpMethod.GET,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{app-id}/subscriptions"
                                      parameters:params
                                      HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

Permisos

  • Necesitas un token de acceso a la app para devolver las suscripciones de esta.

Campos

Nombre Descripción Tipo

object

Indica el tipo de objeto al que se aplica esta suscripción.

enum{user, page, permissions, payments}

callback_url

La URL que recibirá la solicitud POST cuando se activa una actualización.

string

fields

El conjunto de campos de este object que están suscriptos.

string[]

active

Indica si la suscripción está activa o no.

bool

Creación

Puedes crear nuevas suscripciones a webhooks mediante el siguiente perímetro:

POST /v21.0/{app-id}/subscriptions HTTP/1.1
Host: graph.facebook.com

object=page&callback_url=http%3A%2F%2Fexample.com%2Fcallback%2F&fields=about%2C+picture&include_values=true&verify_token=thisisaverifystring
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->post(
    '/{app-id}/subscriptions',
    array (
      'object' => 'page',
      'callback_url' => 'http://example.com/callback/',
      'fields' => 'about, picture',
      'include_values' => 'true',
      'verify_token' => 'thisisaverifystring',
    ),
    '{access-token}'
  );
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
Bundle params = new Bundle();
params.putString("object", "page");
params.putString("callback_url", "http://example.com/callback/");
params.putString("fields", "about, picture");
params.putString("include_values", "true");
params.putString("verify_token", "thisisaverifystring");
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{app-id}/subscriptions",
    params,
    HttpMethod.POST,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
NSDictionary *params = @{
  @"object": @"page",
  @"callback_url": @"http://example.com/callback/",
  @"fields": @"about, picture",
  @"include_values": @"true",
  @"verify_token": @"thisisaverifystring",
};
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{app-id}/subscriptions"
                                      parameters:params
                                      HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

Si se realiza una solicitud POST con los campos callback_url, verify_token y object, se reactivará la suscripción.

Limitaciones

  • No se admite Webhooks de Instagram. Los webhooks de Instagram deben configurarse mediante el panel de apps.
  • No se admite Webhooks de WhatsApp. Los webhooks de WhatsApp web deben configurarse mediante el panel de apps.

Permisos

  • Para agregar nuevas suscripciones de esa app, necesitas un token de acceso a la app.
  • Las suscripciones al tipo de objeto user solo serán válidas para los usuarios que hayan instalado la app.
  • Las suscripciones al tipo de objeto page solo serán válidas para las páginas que tengan instalada la app. Si se trata de una página, puedes instalar la app mediante /{page-id}/subscribed_apps edge.
  • La app que se usa para las suscripciones se debe configurar para recibir actualizaciones de webhooks .

Campos

Nombre Descripción Tipo

object

Indica el tipo de objeto al que se aplica esta suscripción.

enum{user, page, permissions, payments}

callback_url

La URL que recibirá la solicitud POST cuando se activa una actualización, y una solicitud GET cuando se intenta realizar la operación de publicación. Consulta la guía para crear una página de URL de devolución de llamada .

string

fields

Uno o más conjuntos de campos válidos en este object a los que suscribirse.

string[]

include_values

Indica si se deben incluir los nuevos valores en las notificaciones de cambios.

bool

verify_token

Cadena arbitraria que puedes usar para confirmar a tu servidor que la solicitud es válida.

string

Respuesta

Si la URL de devolución de llamada es válida y la suscripción se realiza correctamente:

{
  "success": true
}

De lo contrario, se devolverá un mensaje de error.

Eliminar

Puedes eliminar todas las suscripciones o las suscripciones por objeto mediante la siguiente operación:

DELETE /v21.0/{app-id}/subscriptions HTTP/1.1
Host: graph.facebook.com

object=page
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->delete(
    '/{app-id}/subscriptions',
    array (
      'object' => 'page',
    ),
    '{access-token}'
  );
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
Bundle params = new Bundle();
params.putString("object", "page");
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{app-id}/subscriptions",
    params,
    HttpMethod.DELETE,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
NSDictionary *params = @{
  @"object": @"page",
};
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{app-id}/subscriptions"
                                      parameters:params
                                      HTTPMethod:@"DELETE"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

Puedes eliminar campos específicos de la suscripción si incluyes un parámetro fields.

Permisos

  • Necesitas un token de acceso a la app para eliminar las suscripciones de esta.

Campos

Nombre Descripción Tipo

object

Tipo de objeto específico para eliminar las suscripciones. Si no se incluye este campo opcional, se eliminarán todas las suscripciones de esta app.

enum{user, page, permissions, payments}

fields

Uno o más conjuntos de campos válidos en este object a los que suscribirse.

string[]

Respuesta

Si la operación se completa con éxito, se mostrará lo siguiente:

{
  "success": true
}

De lo contrario, se devolverá un mensaje de error.

Actualizar

Puedes realizar actualizaciones en este perímetro mediante una operación de publicación con nuevos valores. De este modo, se modificará la suscripción del tema determinado sin que se sobrescriban los campos preexistentes.