versión API Graph

Ubicaciones de las páginas

Representa diferentes ubicaciones de páginas de una página de negocio principal. Por ejemplo, las páginas de cada restaurante de una cadena de restaurantes.

Este perímetro se puede leer en todas las aplicaciones. Algunos tipos de operaciones de publicación solo están disponibles para determinados desarrolladores.

Cuando uses las operaciones de publicación de esta API, sigue las directrices siguientes:

  • No cobres nada por crear o solicitar una página.
  • Antes de permitir que otros clientes creen una página, debes proporcionar un medio para que puedan solicitar un lugar existente con el fin de evitar la duplicación de páginas.
  • Asegúrate de que solo creas páginas asociadas con una dirección física real, y no con lugares falsos o virtuales.
  • Si creas una página en nombre de un cliente, debes transferir la administración completa de esa página cuando este lo solicite.
  • No reveles los administradores de una página a terceros sin el consentimiento del cliente, excepto según sea necesario en virtud de la legislación aplicable, de acuerdo con una norma o reglamento de un organismo gubernamental o tribunal de la jurisdicción competente, o de conformidad con un proceso legal.

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

  • Se requiere un identificador de acceso válido para recuperar las ubicaciones.

Campos

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

Publicación

Puedes añadir una página basada en la ubicación existente a esta lista. Para ello, realiza una publicación en este perímetro como se indica a continuación:

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 identificador de acceso a la página para publicar ubicaciones existentes en una página.
  • Se requiere un identificador de acceso a la página para crear ubicaciones nuevas y añadirlas a una página. Solo determinados desarrolladores tendrán acceso a esta funcionalidad.

Campos

NombreDescripciónTipo

differently_open_offerings

Se debe usar cuando el valor de temporary_status se establezca en differently_open para indicar de qué forma distinta a la habitual está funcionando una empresa; por ejemplo, un restaurante que ofrece comida para llevar. Las claves de enumeración pueden ser una o varias de las siguientes: ONLINE_SERVICES, DELIVERY, PICKUP u OTHER con el valor establecido en true o false. Por ejemplo, para un restaurante que ofrece comida para recoger, pero deja de ofrecer reparto sería differently_open_offerings:{"DELIVERY":"false", "PICKUP":"true"}.

object

hours

Define las horas de apertura de esta ubicación.

object

{day}_{number}_{status}

Define el intervalo de horas de apertura único de un día. Cada día puede tener dos intervalos de horarios distintos. El valor de {day} debe mostrar los tres primeros caracteres del día de la semana y el de {number} debe ser 1 o 2 para permitir los dos intervalos de horarios distintos del día. El valor de {status} debe ser open o close para definir el inicio o el fin de un intervalo de tiempo. 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 único intervalo de apertura de 17:00 a 21:15 los lunes.

string

ignore_warnings

Indica si se deben inhabilitar las advertencias (no los errores) que se generan al realizar esta llamada a la API; por ejemplo, si la latitud y la longitud no coinciden con la dirección postal.

bool

is_franchise

¿Se trata de la ubicación de una franquicia?

bool

country

Nombre del país. Si no se incluye city_id, este campo es obligatorio.

string

city

Nombre de una ciudad. Si no se incluye city_id, este campo es obligatorio.

string

city_id

Identificador de una ciudad. Se trata del valor de key de las opciones de segmentación de adcity. Si no se incluye, los campos city y country son obligatorios (state y zip también son obligatorios para las ubicaciones de los EE. UU.).

int

latitude

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

string

location

Define la ubicación de esta página. Este campo es obligatorio si no se especifica location_page_id. El diccionario debe incluir la clave street (dirección postal). También debe incluir city_id, o bien city, state y country (aunque el campo state es opcional si la dirección no es de los EE. UU.). El campo zip también es opcional, a menos que se trate de una dirección de los EE. UU. Puedes encontrar información sobre la generación de un identificador de ciudad más adelante en este documento.

object

longitude

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

string

state

Nombre de un estado (o el equivalente local).

string

street

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

string

zip

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

string

location_page_id

Identificador de la página de Facebook que quieres añadir como ubicación. Si no se incluye este campo, en su lugar debes especificar los campos location, place_topics y phone para crear una nueva página de ubicación.

numeric string

main_page_id

Identificador de la página de Facebook principal de todas las ubicaciones. Este campo es obligatorio.

numeric string

permanently_closed

¿Esta ubicación se cerró de forma permanente?

bool

phone

Número de teléfono de la ubicación. Este campo es obligatorio si no se especifica location_page_id.

string

pickup_options

Lista de opciones de recogida disponibles en esta ubicación.

enum[] {CURBSIDE, IN_STORE, OTHER}

place_topics

Temas del lugar de esta ubicación. Este campo es obligatorio si no se especifica location_page_id.

int[]

store_number

Identificador arbitrario definido por el desarrollador de esta ubicación que se suele utilizar para vincular una base de datos interna de ubicaciones. Este campo es obligatorio.

int

temporary_status

Indica que una empresa correspondiente a una página funciona de una forma distinta a la habitual. Si se establece en differently_open, se debe usar con el campo differently_open_offerings para definir el estado.

enum {differently_open, temporarily_closed, operating_as_usual, no_data}

Respuesta

Cuando esta operación se lleva a cabo correctamente, la aplicación recibe lo siguiente:

{
  "success": true
}

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

Eliminación

Para quitar una página de ubicación de una lista de ubicaciones principal, realiza la eliminación 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 identificador de acceso a la página para quitar las ubicaciones de una página principal.

Campos

Todos los campos son obligatorios.

Nombre Descripción Tipo

main_page_id

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

numeric string

store_number

Identificador definido por el desarrollador de esta ubicación.

numeric string

location_page_id

Identificador definido por Facebook de esta ubicación.

numeric string

Respuesta

Si la operación se completa correctamente:

{
  "success": true
}

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

Actualización

Este extremo 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 identificador de acceso a la página para actualizar las ubicaciones de una página principal.

Campos

Para la actualización, 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 correctamente:

{
  "success": true
}

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