POST/api/v4/connected-accounts/confirm-matches

Confirmer les correspondances de connexion

Confirme les correspondances suggérées entre établissements et fiches renvoyées par l'endpoint de suggestions de connexion.

Nécessite une clé API. Consultez Authentification pour le format de l’en-tête et la rotation des clés.

Paramètres

Corps

NomTypeObligatoireDescription
inputobjectobligatoireWrapper object. The entire request body must be nested under `input`.
input.matchRecordIdsarray of stringsobligatoireMatch-record global IDs to confirm: the standard base64 of `<MatchRecordType>:<matchedDataDatabaseId>`, built from a connection-suggestion record. At least one ID is required.

Exemple de requête

Corps prêt à coller. Remplacez les identifiants et valeurs d’exemple par les vôtres.

Request body
{  "input": {    "matchRecordIds": [      "R21iTG9jYXRpb25NYXRjaGVkRGF0YTowZDVlMzA2Zi0wZGEwLTQ2ZTMtOTI5Zi1mZDNjNjdjY2Q4Y2M="    ]  }}

Réponses

200Request accepted. `success` is `true` when every match was confirmed; when some IDs could not be confirmed they are listed in `failedIds` and `success` is `false`.
Response
{  "data": {    "confirmConnectMatches": {      "failedIds": null,      "success": true    }  }}
400Bad request, the body was not wrapped in `input`, `matchRecordIds` was omitted (error message: `Field value.matchRecordIds of required type [ID!]! was not provided`), or `input` carried a field the endpoint does not accept.
401Unauthenticated, missing or invalid API key.

Accepte les associations suggérées entre établissements et fiches et les confirme, établissant ainsi la connexion active entre les établissements Listings API et les fiches Google Business Profile ou Facebook correspondantes. Une fois la correspondance confirmée, la fiche commence à se synchroniser avec l'établissement Listings API associé.

Structure de la requête. Le corps doit être encapsulé dans un objet input, et le seul champ accepté dans cet objet est matchRecordIds, un tableau d'identifiants d'enregistrements de correspondance ([ID!]!, obligatoire). L'envoi d'un corps plat (non encapsulé) est rejeté avec un statut HTTP 400, tout comme la présence d'un champ inconnu à l'intérieur de input, tel que connectedAccountId ou l'ancien champ matchIds (Unknown field "connectedAccountId"). Une clé superflue à l'extérieur de input est ignorée plutôt que rejetée. Cette requête ne comporte aucun champ connectedAccountId ; le compte est déduit des enregistrements de correspondance eux-mêmes.

Construction d'une valeur matchRecordIds. Un enregistrement de suggestion de connexion ne possède pas de id. Prenez ses valeurs matchedDataDatabaseId et accountType, assemblez-les en les séparant par un deux-points après le nom du type d'enregistrement de correspondance, puis encodez le résultat en base64 :

accountTypeType d'enregistrement de correspondance
GMBGmbLocationMatchedData
FBFbLocationMatchedData
APPLEAppleLocationMatchedData
Python
import base64 TYPES = {    "GMB": "GmbLocationMatchedData",    "FB": "FbLocationMatchedData",    "APPLE": "AppleLocationMatchedData",} def match_record_id(record):    raw = f"{TYPES[record['accountType']]}:{record['matchedDataDatabaseId']}"    return base64.b64encode(raw.encode()).decode()

Un identifiant dont le décodage ne correspond à aucun de ces trois types ne produit pas de 400. L'appel renvoie HTTP 200 avec success: false et sans failedIds ; vérifiez donc success à chaque appel.

Cet endpoint constitue la dernière étape du processus de connexion en masse : connectez le compte, exécutez POST /connected-accounts/trigger-matches pour générer des suggestions, examinez-les à l'aide de l'endpoint de suggestions de connexion, puis confirmez ici les enregistrements approuvés.

Cas d'utilisation : acceptation en masse de correspondances examinées. Après qu'une agence a importé le compte Google d'un client et examiné les associations suggérées dans votre propre interface utilisateur, soumettez les matchRecordIds approuvés en un seul appel au lieu d'effectuer un appel par correspondance. Envoyez uniquement les identifiants approuvés par l'opérateur afin de laisser intactes les suggestions non examinées ou incorrectes.

La confirmation d'une correspondance ne transmet pas immédiatement de données à Google ou Facebook ; elle relie l'établissement Listings API à la fiche de la plateforme de publication afin que les mises à jour ultérieures de la fiche soient transmises. Un appel réussi renvoie success: true avec failedIds: null. Lorsqu'un ou plusieurs identifiants n'ont pas pu être confirmés (par exemple, un enregistrement de correspondance inconnu ou déjà utilisé, ou une correspondance dont l'établissement a été archivé depuis), ces identifiants sont renvoyés dans failedIds et success vaut false, ce qui vous permet de réessayer ou d'afficher uniquement les échecs. failedIds contient les identifiants décodés de la base de données, et non les valeurs encodées que vous avez envoyées ; faites donc le rapprochement avec matchedDataDatabaseId. Pour sélectionner manuellement une seule fiche sans passer par les suggestions, utilisez plutôt l'endpoint connect-listing.

Request
curl -X POST 'https://listingsapi.com/api/v4/connected-accounts/confirm-matches' \  -H "Authorization: API $LISTINGSAPI_KEY" \  -H 'Content-Type: application/json' \  -d '{    "input": {      "matchRecordIds": [        "R21iTG9jYXRpb25NYXRjaGVkRGF0YTowZDVlMzA2Zi0wZGEwLTQ2ZTMtOTI5Zi1mZDNjNjdjY2Q4Y2M="      ]    }  }'