Version API du graphe

Lieux de Page

Les lieux représentent les différentes pages de lieux associés à une Page professionnelle parente. Par exemple, les pages associées aux différents restaurants d’une chaîne.

La lecture de cette arête est disponible pour toutes les applications. Certains types d’opérations de publication ne sont disponibles que pour certaines équipes de développement.

Lorsque vous utilisez les opérations de publication de cette API, veuillez suivre les règles suivantes :

  • Ne facturez pas de frais pour la création ou la revendication d’une Page.
  • Lorsque des clients souhaitent créer une Page, commencez par leur proposer un moyen de revendiquer une Page existante afin d’éviter les doublons.
  • Veillez à ce que les Pages que vous créez soient associées à une véritable adresse physique, et non à un lieu factice ou virtuel.
  • Lorsque vous créez une Page au nom d’un client, vous êtes tenu de lui transférer tous les droits d’administration de celle-ci s’il vous le demande.
  • Ne révélez pas l’identité des administrateurs d’une Page à des tiers sans l’autorisation du client, à moins d’y être contraint par la loi en vigueur, un règlement ou un jugement émanant d’une administration ou d’un tribunal compétents, ou encore une procédure juridique.

Lecture

Explorateur de l’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
}];

Autorisations

  • Un token d’accès valide est requis pour récupérer des lieux.

Champs

Un tableau d’objets Page représentant chacun un lieu de l’entreprise en question.

Publication

Vous pouvez ajouter une Page représentant un lieu à cette liste en publiant sur cette arête :

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

Autorisations

  • Un token d’accès de Page est requis pour publier des lieux existants sur une page.
  • Un token d’accès de Page est requis pour créer des lieux en vue de les ajouter à une page. Seuls certains développeurs ont accès à cette fonctionnalité.

Champs

NomDescriptionType

differently_open_offerings

À utiliser quand temporary_status est défini sur differently_open pour indiquer une différence par rapport au fonctionnement habituel de l’entreprise, par exemple un restaurant qui propose des plats à emporter. Vous pouvez utiliser une ou plusieurs des clés d’énumération suivantes : ONLINE_SERVICES, DELIVERY, PICKUP ou OTHER en les associant à la valeur true ou false. Par exemple, un restaurant proposant des plats à emporter qui interrompt son service de livraison se présenterait comme suit : differently_open_offerings:{"DELIVERY":"false", "PICKUP":"true"}

object

hours

Définit les horaires d’ouverture du lieu.

object

{day}_{number}_{status}

Définit une seule plage d’heures d’ouverture pour une journée. Chaque jour peut avoir deux plages d’horaires d’ouverture. {day} doit être associé aux trois premières lettres du jour de la semaine, {number} à la valeur 1 ou 2 selon le nombre de plages d’horaires d’ouverture par jour. {status} doit être associé à la valeur open ou close pour indiquer le début ou la fin d’une plage horaire. Par exemple, mon_1_open peut avoir la valeur 17:00 et mon_1_close la valeur 21:15, ce qui représente une plage d’horaires d’ouverture unique de 17 h à 21 h 15 le lundi.

string

ignore_warnings

Indique si les avertissements (pas les erreurs) résultant de cet appel d’API doivent être désactivés, par exemple lorsque la latitude et la longitude ne correspondent pas à l’adresse postale.

bool

is_franchise

Indique s’il s’agit d’un lieu franchisé.

bool

country

Nom d’un pays. Requis si city_id n’est pas inclus.

string

city

Nom d’une ville. Requis si city_id n’est pas inclus.

string

city_id

ID d’une ville. Il s’agit de la valeur key des options de ciblage adcity. Si cet attribut n’est pas inclus, alors city et country sont requis (state et zip sont également requis pour les lieux situés aux États-Unis).

int

latitude

Latitude en valeur décimale. Requis pour location.

string

location

Définit le lieu associé à cette page. Requis si location_page_id n’est pas inclus. Le dictionnaire doit inclure la clé street (adresse postale). Il doit également inclure soit city_id, soit les attributs city, state et country (state étant facultatif pour les adresses situées en dehors des États-Unis). Le champ zip est aussi facultatif, sauf pour les adresses situées aux États-Unis. Vous trouverez plus bas dans ce document des informations sur la génération d’un ID de ville.

object

longitude

Longitude en valeur décimale. Requis pour location.

string

state

Nom d’un État (ou équivalent local).

string

street

Adresse postale. Requis pour location.

string

zip

Code postal du lieu (ou équivalent local).

string

location_page_id

ID de la Page Facebook que vous souhaitez ajouter en tant que lieu. Si ce champ n’est pas inclus, vous devez spécifier les champs location, place_topics et phone pour créer une nouvelle Page de lieu.

numeric string

main_page_id

ID de la Page Facebook parente de tous les lieux associés. Ce champ est obligatoire.

numeric string

permanently_closed

Indique si le lieu a fermé définitivement.

bool

phone

Numéro de téléphone du lieu. Requis si location_page_id n’est pas inclus.

string

pickup_options

Liste d’options de retrait disponibles pour ce lieu.

enum[] {CURBSIDE, IN_STORE, OTHER}

place_topics

Thèmes du lieu. Requis si location_page_id n’est pas inclus.

int[]

store_number

ID arbitraire défini par le développeur pour ce lieu, qui permet généralement de renvoyer à une base de données interne de lieux. Ce champ est obligatoire.

int

temporary_status

Indique en quoi le fonctionnement de l’entreprise correspondant à la Page diffère par rapport à d’habitude. Si cet attribut est défini sur differently_open, utilisez l’attribut differently_open_offerings pour définir son statut.

enum {differently_open, temporarily_closed, operating_as_usual, no_data}

Réponse

En cas de réussite, votre application reçoit la réponse suivante :

{
  "success": true
}

En cas d’échec, un message d’erreur approprié est renvoyé.

Suppression

Vous pouvez supprimer une page de lieu dans la liste des lieux d’une Page parente en effectuant la suppression sur cette arête :

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

Autorisations

  • Un token d’accès de Page est requis pour supprimer des lieux d’une page parente.

Champs

Tous les champs sont obligatoires.

Nom Description Type

main_page_id

ID de la Page Facebook principale pour ce lieu.

numeric string

store_number

ID défini par le développeur pour ce lieu.

numeric string

location_page_id

ID défini par Facebook pour ce lieu.

numeric string

Réponse

En cas de réussite :

{
  "success": true
}

En cas d’échec, un message d’erreur approprié est renvoyé.

Mise à jour

Ce point de terminaison est compatible avec la nouvelle expérience de Page.

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

Autorisations

  • Un token d’accès de Page est requis pour mettre à jour les lieux d’une page parente.

Champs

Pour effectuer une mise à jour, incluez tous les champs de publication obligatoires, ainsi que les autres champs de publication dont vous souhaitez modifier la valeur.

Réponse

En cas de réussite :

{
  "success": true
}

En cas d’échec, un message d’erreur approprié est renvoyé.