/api/v4/connected-accounts/connect-listingConnecter une fiche à un établissement
Lie une fiche Google Business Profile ou Facebook spécifique à un établissement Listings API.
Paramètres
Corps
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
| input | object | obligatoire | Wrapper object. The entire request body must be nested under `input`. |
| input.locationId | string | obligatoire | Base64-encoded location Relay ID (e.g. `TG9jYXRpb246MTgwMDI4OQ==`) of the Listings API location to link the listing to. |
| input.connectedAccountId | string | obligatoire | ID of the connected account (Google or Facebook) that owns the listing. Taken from `GET /connected-accounts`. |
| input.connectedAccountListingId | string | obligatoire | ID of the listing within that connected account to link. Taken from the `id` of a record returned by `POST /connected-accounts/connected-account-listings`. |
Exemple de requête
Corps prêt à coller. Remplacez les identifiants et valeurs d’exemple par les vôtres.
{ "input": { "locationId": "TG9jYXRpb246MTgwMDI4OQ==", "connectedAccountId": "4f712c17-4f95-42dd-90f4-97171a2e67b5", "connectedAccountListingId": "R29vZ2xlTG9jYXRpb246ODc3NTkzNGItNTA5OC00ZDBhLThiNDQ=" }}Réponses
200Request accepted. `success` is `true` when the listing was linked; when it cannot be linked `success` is `false` and `message` explains why (for example, `Listing record not found`).
{ "data": { "connectListing": { "message": null, "success": true } }}400Bad request, the body was not wrapped in `input`, or a required field was omitted. Note the field is `connectedAccountListingId`, not `listingId` (the API rejects `listingId` with `did you mean locationId?`).
401Unauthenticated, missing or invalid API key.
Associe une fiche d’une plateforme de publication (Google Business Profile ou page Facebook) à un établissement Listings API afin de maintenir les données de la fiche synchronisées. Contrairement au processus fondé sur les suggestions, cet endpoint lie une seule fiche que vous avez déjà choisie, sans étape de confirmation de la correspondance.
Structure de la requête. Le corps doit être encapsulé dans un objet input comportant trois champs obligatoires : locationId (l’identifiant Relay de l’établissement encodé en base64), connectedAccountId (le compte propriétaire de la fiche) et connectedAccountListingId (la fiche spécifique à lier). Il n’y a pas de champ listingId : il est rejeté par le schéma. Récupérez connectedAccountId à partir de GET /connected-accounts et connectedAccountListingId à partir du champ id d’un enregistrement renvoyé par POST /connected-accounts/connected-account-listings.
Cas d’utilisation : liaison manuelle lorsque la correspondance automatique est ambiguë. Deux points de vente proches portent des noms similaires et trigger-matches ne peut pas déterminer quelle fiche Google correspond à quel établissement Listings API. Récupérez les fiches du compte connecté, laissez un opérateur choisir la bonne, puis liez-la directement avec cet endpoint, en contournant entièrement le processus de suggestions et de confirmation.
Si la connexion échoue, la réponse renvoie success: false avec un champ message non nul décrivant la raison, par exemple Listing record not found lorsque connectedAccountListingId ne peut pas être résolu, ou un message indiquant que la fiche est déjà connectée à un autre établissement. Pour accepter plutôt en masse les correspondances suggérées par le système, utilisez l’endpoint confirm-matches.
curl -X POST 'https://listingsapi.com/api/v4/connected-accounts/connect-listing' \ -H "Authorization: API $LISTINGSAPI_KEY" \ -H 'Content-Type: application/json' \ -d '{ "input": { "locationId": "TG9jYXRpb246MTgwMDI4OQ==", "connectedAccountId": "4f712c17-4f95-42dd-90f4-97171a2e67b5", "connectedAccountListingId": "R29vZ2xlTG9jYXRpb246ODc3NTkzNGItNTA5OC00ZDBhLThiNDQ=" } }'