API Graph versión

Ubicaciones de página

Esto hace referencia a las distintas ubicaciones de página de una página de negocio principal. Por ejemplo, las páginas de cada uno de los restaurantes de una cadena de restaurantes.

Todas las apps pueden leer este perímetro. Algunas operaciones de publicación solo están disponibles para desarrolladores seleccionados.

Cuando uses las operaciones de publicación de esta API, recuerda lo siguiente:

  • No cobres una comisión por crear o reclamar una página.
  • Antes de permitir que los clientes creen una página, debes proporcionarles un medio para reclamar un lugar existente a fin de evitar la duplicación de páginas.
  • Asegúrate de crear solamente páginas asociadas a una dirección física real, no a lugares falsos ni virtuales.
  • Si creas una página en nombre de un cliente, debes transferir toda la administración de dicha página cuando el cliente te lo pida.
  • No reveles a terceros los nombres de los administradores de una página sin el consentimiento del cliente, salvo que lo exija la ley o una norma o reglamentación de un tribunal o un organismo gubernamental de una jurisdicción competente, o que lo hagas conforme a procedimientos legales.

Lectura

Explorador de la API Graph
GET /v21.0/{page-id}/locations 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(
    '/{page-id}/locations',
    '{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 */
FB.api(
    "/{page-id}/locations",
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{page-id}/locations",
    null,
    HttpMethod.GET,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{page-id}/locations"
                                      parameters:params
                                      HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

Permisos

  • Todos los tokens de acceso válidos son necesarios para recuperar ubicaciones.

Campos

Un conjunto de objetos de página, cada uno de los cuales representa una ubicación individual de la empresa.

Publicación

Para agregar a la lista una página que ya tenga una ubicación, publica en el siguiente perímetro:

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

main_page_id=%7Bpage-id%7D&store_number=12345&location_page_id=%7Bsubpage-id%7D
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->post(
    '/{page-id}/locations',
    array (
      'main_page_id' => '{page-id}',
      'store_number' => '12345',
      'location_page_id' => '{subpage-id}',
    ),
    '{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 */
FB.api(
    "/{page-id}/locations",
    "POST",
    {
        "main_page_id": "{page-id}",
        "store_number": "12345",
        "location_page_id": "{subpage-id}"
    },
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
Bundle params = new Bundle();
params.putString("main_page_id", "{page-id}");
params.putString("store_number", "12345");
params.putString("location_page_id", "{subpage-id}");
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{page-id}/locations",
    params,
    HttpMethod.POST,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
NSDictionary *params = @{
  @"main_page_id": @"{page-id}",
  @"store_number": @"12345",
  @"location_page_id": @"{subpage-id}",
};
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{page-id}/locations"
                                      parameters:params
                                      HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

Permisos

  • Se requiere un token de acceso a la página para publicar ubicaciones existentes en la página.
  • Se requiere un token de acceso a la página para crear ubicaciones nuevas y agregarlas a una página. Solo algunos desarrolladores seleccionados tendrán acceso a esta funcionalidad.

Campos

NombreDescripciónTipo

differently_open_offerings

Se utiliza cuando temporary_status se configura como differently_open para indicar que el negocio no funciona del modo habitual (por ejemplo, un restaurante que ofrece comida para llevar). Las claves de enumeración pueden ser una o más de las siguientes: ONLINE_SERVICES, DELIVERY, PICKUP, OTHER con el valor true o false. Por ejemplo, en el caso de un restaurante que ofrece comida para llevar, pero no tiene servicio de reparto por el momento, se utiliza differently_open_offerings:{"DELIVERY":"false", "PICKUP":"true"}.

object

hours

Define el horario comercial de la ubicación.

object

{day}_{number}_{status}

Define un solo intervalo del horario comercial para un día. Cada día puede tener dos intervalos de horas distintos. {day} debe representar los tres primeros caracteres del día de la semana, {number} debe ser 1 o 2 para permitir los dos intervalos de horas diferentes por día. {status} debe tener el valor open o close para definir el inicio o el final de un periodo. Un ejemplo sería mon_1_open con el valor 17:00, y mon_1_close con el valor 21:15, lo que representaría un solo horario comercial de 17:00 a 21:15 los lunes.

string

ignore_warnings

Define si se desactivan las advertencias (no los errores) de esta llamada a la API, como cuando los valores de latitud y longitud no coinciden con la dirección postal.

bool

is_franchise

¿Esta ubicación es una franquicia?

bool

country

Nombre de un país. Si city_id no se incluye, este valor es obligatorio.

string

city

El nombre de una ciudad. Si city_id no se incluye, este valor es obligatorio.

string

city_id

El identificador de una ciudad. Este es el valor key de las adcity opciones de segmentación. Si no se incluye, city y country son obligatorios (state y zip también son obligatorios para ubicaciones de Estados Unidos).

int

latitude

Latitud basada en decimales. Este valor es obligatorio para location.

string

location

Define la ubicación para esta página. Es obligatorio si no se especifica location_page_id. El diccionario debe incluir la clave street (dirección). También debe incluir city_id o city, state y country (pero state es opcional si la dirección no se encuentra en EE. UU.). El campo zip también es opcional, a menos que se trate de una dirección de EE. UU. Consulta las secciones posteriores de este documento para obtener información sobre cómo generar un identificador de ciudad.

object

longitude

Longitud basada en decimales. Este valor es obligatorio para location.

string

state

Nombre de un estado (o su equivalente local).

string

street

Dirección postal. Este valor es obligatorio para location.

string

zip

Código postal de la ubicación (o su equivalente local).

string

location_page_id

El identificador de la página de Facebook que quieres agregar como ubicación. Si no incluyes este campo, debes especificar los campos location, place_topics y phone para crear una nueva página de ubicación.

numeric string

main_page_id

El identificador de la página de Facebook principal que reúne todas las ubicaciones. Este campo es obligatorio.

numeric string

permanently_closed

¿Esta ubicación está cerrada de forma permanente?

bool

phone

El número de teléfono de la ubicación. Es obligatorio si no se especifica location_page_id.

string

pickup_options

Una lista de opciones disponibles en esta ubicación.

enum[] {CURBSIDE, IN_STORE, OTHER}

place_topics

Los temas de esta ubicación. Es obligatorio si no se especifica location_page_id.

int[]

store_number

Un identificador arbitrario definido por el desarrollador para esta ubicación que suele usarse para vincular a una base de datos interna con ubicaciones. Este campo es obligatorio.

int

temporary_status

Indica de qué manera el negocio de una página está funcionando de modo distinto al habitual. Si el valor es differently_open, úsalo con differently_open_offerings para definir el estado.

enum {differently_open, temporarily_closed, operating_as_usual, no_data}

Respuesta

Si la operación se completa con éxito, la app recibirá la siguiente respuesta:

{
  "success": true
}

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

Eliminar

Para eliminar una página de ubicación de una lista principal de ubicaciones, debes eliminar lo siguiente en este perímetro:

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

main_page_id=%7Bpage-id%7D&store_number=12345&location_page_id=%7Bsubpage-id%7D
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->delete(
    '/{page-id}/locations',
    array (
      'main_page_id' => '{page-id}',
      'store_number' => '12345',
      'location_page_id' => '{subpage-id}',
    ),
    '{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 */
FB.api(
    "/{page-id}/locations",
    "DELETE",
    {
        "main_page_id": "{page-id}",
        "store_number": "12345",
        "location_page_id": "{subpage-id}"
    },
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
Bundle params = new Bundle();
params.putString("main_page_id", "{page-id}");
params.putString("store_number", "12345");
params.putString("location_page_id", "{subpage-id}");
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{page-id}/locations",
    params,
    HttpMethod.DELETE,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
NSDictionary *params = @{
  @"main_page_id": @"{page-id}",
  @"store_number": @"12345",
  @"location_page_id": @"{subpage-id}",
};
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{page-id}/locations"
                                      parameters:params
                                      HTTPMethod:@"DELETE"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

Permisos

  • Se requiere un token de acceso a la página para eliminar ubicaciones de una página principal.

Campos

Todos los campos son obligatorios.

Nombre Descripción Tipo

main_page_id

El identificador de la página de Facebook principal de esta ubicación.

numeric string

store_number

El identificador definido por el desarrollador para esta ubicación.

numeric string

location_page_id

El identificador definido por Facebook para esta ubicación.

numeric 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.

Actualización

Este punto de conexión es compatible con la nueva experiencia para páginas.

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

main_page_id=%7Bpage-id%7D&store_number=12345&location_page_id=%7Bsubpage-id%7D
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->post(
    '/{page-id}/locations',
    array (
      'main_page_id' => '{page-id}',
      'store_number' => '12345',
      'location_page_id' => '{subpage-id}',
    ),
    '{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 */
FB.api(
    "/{page-id}/locations",
    "POST",
    {
        "main_page_id": "{page-id}",
        "store_number": "12345",
        "location_page_id": "{subpage-id}"
    },
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
Bundle params = new Bundle();
params.putString("main_page_id", "{page-id}");
params.putString("store_number", "12345");
params.putString("location_page_id", "{subpage-id}");
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{page-id}/locations",
    params,
    HttpMethod.POST,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
NSDictionary *params = @{
  @"main_page_id": @"{page-id}",
  @"store_number": @"12345",
  @"location_page_id": @"{subpage-id}",
};
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{page-id}/locations"
                                      parameters:params
                                      HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

Permisos

  • Se requiere un token de acceso a la página para actualizar ubicaciones de una página principal.

Campos

Para actualizar, incluye cualquiera de los campos de publicación obligatorios y cualquiera de los demás campos de publicación cuyos valores quieras cambiar.

Respuesta

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

{
  "success": true
}

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