Versione API Graph

Posizioni della Pagina

Rappresenta le diverse posizioni delle pagine di una Pagina aziendale principale. Ad esempio, le pagine di ogni ristorante in una catena di ristoranti.

La lettura di questo segmento è disponibile per tutte le app. Alcuni tipi di operazioni di pubblicazione sono disponibili solo per sviluppatori selezionati.

Quando utilizzi le operazioni di pubblicazione di questa API, segui queste linee guida:

  • Non addebitare costi per la creazione o la rivendicazione di una Pagina.
  • Prima di consentire ai clienti di creare una Pagina, devi fornire loro un mezzo per rivendicare un Luogo esistente per impedire la duplicazione della Pagina.
  • Assicurati di creare solo Pagine associate a un indirizzo fisico reale, non a luoghi falsi o virtuali.
  • Se crei una Pagina per conto di un cliente, devi trasferire la completa amministrazione di tale Pagina su richiesta del cliente.
  • Non divulgare gli amministratori di una Pagina a terzi senza il consenso del cliente, ad eccezione di quanto richiesto dalla legge applicabile o da qualsiasi norma o regolamento di qualsiasi tribunale o agenzia governativa della giurisdizione competente o ai sensi di un procedimento legale.

Lettura

Tool di esplorazione per 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
}];

Autorizzazioni

  • Per recuperare le posizioni è richiesto qualsiasi token d'accesso valido.

Campi

Un array di oggetti della Pagina, ognuno dei quali rappresenta una singola posizione dell'azienda.

Pubblicazione

Puoi aggiungere una Pagina basata sulla posizione esistente a questa lista pubblicando su questo segmento:

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

Autorizzazioni

  • Per pubblicare posizioni esistenti su una Pagina è necessario un token d'accesso della Pagina.
  • È necessario un token d'accesso della Pagina per creare nuove posizioni e aggiungerle a una Pagina. Solo sviluppatori selezionati avranno accesso a questa funzionalità.

Campi

NomeDescrizioneTipo

differently_open_offerings

Da usare quando temporary_status è impostato su differently_open per indicare in che modo l'azienda sta operando diversamente dal solito, ad esempio un ristorante che ha inserito la possibilità di asporto. Le chiavi enum possono coincidere con uno o più dei valori seguenti: ONLINE_SERVICES, DELIVERY, PICKUP, OTHER con valore impostato su true o false. Ad esempio, un ristorante che ha inserito l'opzione di ritiro dell'ordinazione ma ha sospeso la consegna a domicilio risulterebbe differently_open_offerings:{"DELIVERY":"false", "PICKUP":"true"}

object

hours

Definisce l'orario di apertura di questa posizione.

object

{day}_{number}_{status}

Definisce un singolo intervallo di orari di apertura per un giorno. Ogni giorno può avere 2 diversi intervalli di orari. {day} deve corrispondere ai primi 3 caratteri del giorno della settimana, {number} deve essere 1 o 2 per consentire i due diversi intervalli di orari al giorno. {status} deve essere open o close per definire l'inizio e la fine di un intervallo di orari. Un esempio è mon_1_open con valore 17:00 e mon_1_close con valore 21:15, a rappresentare un singolo intervallo di apertura dalle 17:00 alle 21:15 di lunedì.

string

ignore_warnings

Consente di disabilitare gli avvisi (non gli errori) risultanti da questa chiamata API, come latitudine e longitudine non corrispondenti all'indirizzo (via).

bool

is_franchise

Si tratta di un franchising?

bool

country

Nome del Paese. È obbligatorio se non è incluso un city_id.

string

city

Nome della città. È obbligatorio se non è incluso un city_id.

string

city_id

ID della città. Si tratta del valore key delle opzioni di targetizzazione adcity. Se non è incluso, city e country sono obbligatori (state e zip sono obbligatori anche per le posizioni negli Stati Uniti).

int

latitude

Latitudine basata su decimali. È obbligatorio per location.

string

location

Definisce la posizione di questa pagina. È obbligatorio se non è specificato alcun location_page_id. Il dizionario deve includere il campo street principale, ovvero l'indirizzo (via). Deve includere anche city_id o tutti i campi city, state e country (ma state è opzionale se l'indirizzo non è negli Stati Uniti). Anche il campo zip è opzionale, a meno che non si tratti di un indirizzo negli Stati Uniti. Per informazioni sul processo di generazione di un id città vedi più avanti in questo documento.

object

longitude

Longitudine basata sui decimali. È obbligatorio per location.

string

state

Nome di uno stato (o equivalente locale).

string

street

Indirizzo (via). È obbligatorio per location.

string

zip

CAP della posizione (o equivalente locale).

string

location_page_id

L'ID della Pagina Facebook che desideri aggiungere come posizione. Se questo campo non è incluso, devi specificare i campi location, place_topics e phone per creare un nuova Pagina di posizione.

numeric string

main_page_id

L'ID per la Pagina Facebook principale a cui rimandano tutte le posizioni. Questo è un campo obbligatorio.

numeric string

permanently_closed

Questa posizione è definitivamente chiusa?

bool

phone

Numero di telefono per questa posizione. È obbligatorio se non è specificato alcun location_page_id.

string

pickup_options

Una lista di opzioni di ritiro disponibili per questa posizione.

enum[] {CURBSIDE, IN_STORE, OTHER}

place_topics

Argomenti sui luoghi relativi a questa posizione. È obbligatorio se non è specificato alcun location_page_id.

int[]

store_number

Un ID arbitrario definito dallo sviluppatore per questa posizione, generalmente usato per reindirizzare a un database interno di posizioni. Questo è un campo obbligatorio.

int

temporary_status

Indica in che modo l'azienda corrispondente a un Pagina sta operando diversamente dal solito. Se impostato su differently_open, usalo con differently_open_offerings per impostare lo stato.

enum {differently_open, temporarily_closed, operating_as_usual, no_data}

Risposta

In caso di azione eseguita correttamente, la tua app riceve la seguente risposta:

{
  "success": true
}

In caso contrario, viene restituito un messaggio di errore pertinente.

Eliminazione

Puoi rimuovere una pagina di posizione dalla lista di posizioni di una pagina principale eliminando questo segmento:

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

Autorizzazioni

  • È necessario un token d'accesso della Pagina per rimuovere le posizioni da una pagina principale.

Campi

Tutti i campi sono obbligatori.

Nome Descrizione Tipo

main_page_id

ID della Pagina Facebook principale per questa posizione.

numeric string

store_number

ID definito dallo sviluppatore per questa posizione.

numeric string

location_page_id

ID definito da Facebook per questa posizione.

numeric string

Risposta

Se l'operazione va a buon fine:

{
  "success": true
}

In caso contrario, viene restituito un messaggio di errore pertinente.

Aggiornamento

Questo endpoint è supportato per la nuova esperienza della Pagina.

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

Autorizzazioni

  • È necessario un token d'accesso della Pagina per aggiornare le posizioni su una pagina principale.

Campi

Per aggiornare, includi uno dei campi di pubblicazione obbligatori e uno qualsiasi degli altri campi di pubblicazione per cui desideri modificare i valori.

Risposta

Se l'operazione va a buon fine:

{
  "success": true
}

In caso contrario, viene restituito un messaggio di errore pertinente.