Versão Graph API

Localizações de Página

Representa diferentes localizações de página de uma Página comercial principal. Por exemplo, as páginas das franquias de uma cadeia de restaurantes.

A leitura dessa borda está disponível para todos os apps. Alguns tipos de operações de publicação estão disponíveis somente para determinados desenvolvedores.

Ao utilizar as operações de publicação dessa API, siga estas orientações:

  • Não cobre taxas para criar ou obter uma Página.
  • Antes de permitir que os clientes criem uma Página, é necessário oferecer meios para que eles obtenham um local existente, de modo a evitar a duplicação de Páginas.
  • Crie somente Páginas associadas a um endereço físico real, sem locais falsos ou virtuais.
  • Se você criar uma Página em nome de um cliente, será necessário transferir o gerenciamento total dessa Página diante da solicitação do cliente.
  • Não revele quem são os administradores de uma Página para terceiros sem o consentimento do cliente, exceto se exigido por uma lei, regra ou regulamentação aplicável de tribunal ou de uma agência do governo na jurisdição competente, bem como se isso for necessário em decorrência de um processo legal.

Leitura

Explorador da Graph API
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
}];

Permissões

  • É obrigatório usar tokens de acesso válidos para recuperar localizações.

Campos

Uma matriz de objetos de Página. Cada objeto representa uma localização da empresa.

Publicação

Você pode adicionar uma Página baseada em localização à lista ao publicar na borda:

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
}];

Permissões

  • Um token de acesso à Página é necessário para publicar localizações existentes em uma página.
  • Um token de acesso à Página também é necessário para criar localizações e adicioná-las a uma página. Somente os desenvolvedores selecionados terão acesso a essa funcionalidade.

Campos

NomeDescriçãoTipo

differently_open_offerings

Deve ser usado quando temporary_status estiver definido como differently_open para indicar que a empresa está funcionando de modo diferente do normal, por exemplo, um restaurante com retirada do pedido no local. As chaves de enumeração podem ser uma ou mais das seguintes: ONLINE_SERVICES, DELIVERY, PICKUP e OTHER com valor definido como true ou false. Por exemplo, um restaurante com retirada de comida, mas sem serviço de entrega, terá differently_open_offerings:{"DELIVERY":"false", "PICKUP":"true"}

object

hours

Define o horário de funcionamento da localização.

object

{day}_{number}_{status}

Define um intervalo único para o horário de funcionamento em um dia. Cada dia pode ter dois intervalos diferentes. {day} deve ser os três primeiros caracteres do dia da semana e {number} deve ser 1 ou 2 para permitir os dois intervalos diferentes por dia. {status} deve ser open ou close para definir o início e o término de um intervalo. Por exemplo, mon_1_open com o valor 17:00 e mon_1_close com o valor 21:15 representam um horário de funcionamento das 17h às 21h15 nas segundas-feiras.

string

ignore_warnings

Determina se alertas (não erros) resultantes dessa chamada de API devem ser desabilitados, como latitude e longitude que não correspondem ao endereço físico.

bool

is_franchise

É uma localização de franquia?

bool

country

O nome do país. Será obrigatório caso city_id não seja incluído.

string

city

O nome da cidade. Será obrigatório caso city_id não seja incluído.

string

city_id

O ID da cidade. É o valor key das opções de direcionamento de adcity. Se isso não estiver incluído, city e country serão obrigatórios (para localizações nos EUA, state e zip também são obrigatórios).

int

latitude

A latitude em decimais. Isso é obrigatório para location.

string

location

Isso define a localização da página. Será obrigatório se location_page_id não for especificado. O dicionário deve incluir a chave street (endereço físico). Também deve incluir city_id ou city, state e country (state será opcional se o endereço não for dos EUA). O campo zip também é opcional, a menos que seja um endereço dos EUA. Veja mais adiante neste documento informações sobre como gerar um ID de cidade.

object

longitude

A longitude em decimais. Isso é obrigatório para location.

string

state

O nome do estado (ou equivalente local).

string

street

O endereço físico. Isso é obrigatório para location.

string

zip

O código postal da localização (ou equivalente local).

string

location_page_id

A identificação da Página do Facebook que você deseja adicionar como uma localização. Se esse campo não estiver incluído, será necessário especificar os campos location, place_topics e phone para criar a Página de uma nova localização.

numeric string

main_page_id

A identificação da Página do Facebook principal de todas as localizações. Esse campo é obrigatório.

numeric string

permanently_closed

A localização está fechada permanentemente?

bool

phone

O número de telefone da localização. Será obrigatório se location_page_id não for especificado.

string

pickup_options

Uma lista das opções de retirada disponíveis na localização.

enum[] {CURBSIDE, IN_STORE, OTHER}

place_topics

Os tópicos de local dessa localização. Será obrigatório se location_page_id não for especificado.

int[]

store_number

Uma identificação arbitrária definida pelo desenvolvedor para o local, geralmente usada para vincular a um banco de dados interno de localizações. Esse campo é obrigatório.

int

temporary_status

Indica como a empresa correspondente a uma Página está operando de modo diferente do usual. Se estiver definido como differently_open, use com differently_open_offerings para definir o status.

enum {differently_open, temporarily_closed, operating_as_usual, no_data}

Resposta

Se o processo for bem-sucedido, o app receberá a seguinte resposta:

{
  "success": true
}

Caso contrário, uma mensagem de erro relevante será exibida.

Exclusão

É possível remover uma página de localização de uma lista de localizações da página principal ao fazer a exclusão na borda:

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
}];

Permissões

  • Um token de acesso à Página é necessário para remover localizações de uma página principal.

Campos

Todos os campos são obrigatórios.

Nome Descrição Tipo

main_page_id

A identificação da Página do Facebook principal dessa localização.

numeric string

store_number

O ID definido pelo desenvolvedor para essa localização.

numeric string

location_page_id

O ID definido pelo Facebook para essa localização.

numeric string

Resposta

Caso a operação seja bem-sucedida:

{
  "success": true
}

Caso contrário, uma mensagem de erro relevante será exibida.

Atualização

Este ponto de extremidade é compatível com a nova experiência de Página.

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
}];

Permissões

  • Um token de acesso à Página é necessário para atualizar as localizações em uma página principal.

Campos

Para atualizar, inclua algum dos campos de publicação obrigatórios e qualquer um dos outros campos de publicação cujo valor você deseja alterar.

Resposta

Caso a operação seja bem-sucedida:

{
  "success": true
}

Caso contrário, uma mensagem de erro relevante será exibida.