versión API Graph

/{app-id}/subscriptions

Este perímetro te permite configurar suscripciones a webhooks en una aplicación.

Lectura

Explorador de la API Graph
GET /v19.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

  • Se necesita un identificador de acceso a la aplicación para devolver las suscripciones de esa aplicación.

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 active una actualización.

string

fields

El conjunto de campos de este elemento object a los que estás suscrito.

string[]

active

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

bool

Creación

Puedes crear nuevas suscripciones a webhooks mediante este perímetro:

POST /v19.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 realizas una solicitud POST con los campos callback_url, verify_token y object, se reactivará la suscripción.

Limitaciones

  • No se admiten los webhooks para Instagram. Los webhooks de Instagram deben configurarse con el panel de aplicaciones.
  • No se admiten los webhooks para WhatsApp. Los webhooks de WhatsApp deben configurarse con el panel de aplicaciones.

Permisos

  • Se necesita un identificador de acceso a la aplicación para añadir nuevas suscripciones de esa aplicación.
  • Las suscripciones del tipo de objeto user solo serán válidas para los usuarios que hayan descargado la aplicación.
  • Las suscripciones del tipo de objeto page solo serán válidas para las páginas que hayan descargado la aplicación. Puedes descargar la aplicación para una página con el perímetro /{page-id}/subscribed_apps.
  • La aplicación usada para suscribirse debe estar configurada para recibir las 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 active una actualización y una solicitud GET cuando se intente llevar a cabo esta operación de publicación. Consulta nuestra guía para construir una página de URL de devolución de llamada.

string

fields

Uno o varios campos del conjunto de campos válidos de este elemento object a los que suscribirse.

string[]

include_values

Indica si las notificaciones de cambio deben incluir los nuevos valores.

bool

verify_token

Una cadena arbitraria que se puede usar para confirmar al servidor que la solicitud es válida.

string

Respuesta

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

{
  "success": true
}

De lo contrario, se devolverá el mensaje de error pertinente.

Eliminación

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

DELETE /v19.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
}];

Para eliminar campos específicos de la suscripción, incluye un parámetro fields.

Permisos

  • Se necesita un identificador de acceso a la aplicación para eliminar las suscripciones de esa aplicación.

Campos

Nombre Descripción Tipo

object

Un tipo de objeto específico para el que eliminar suscripciones. Si este campo opcional no se incluye, se eliminarán todas las suscripciones de esta aplicación.

enum{user, page, permissions, payments}

fields

Uno o varios campos del conjunto de campos válidos de este elemento object a los que suscribirse.

string[]

Respuesta

Si la operación se completa correctamente:

{
  "success": true
}

De lo contrario, se devolverá el mensaje de error pertinente.

Actualización

Para llevar a cabo actualizaciones en este perímetro, realiza una operación de publicación con valores nuevos. Esto modificará la suscripción del tema en cuestión sin sustituir los campos existentes.