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

Conferma gli abbinamenti di connessione

Conferma gli abbinamenti suggeriti tra sedi e schede restituiti dall'endpoint dei suggerimenti di connessione.

Richiede una chiave API. Consulta Autenticazione per il formato dell’header e la rotazione delle chiavi.

Parametri

Corpo

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

Richiesta di esempio

Corpo pronto da incollare. Sostituisci gli ID e i valori segnaposto con i tuoi.

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

Risposte

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.

Accetta e conferma gli abbinamenti suggeriti tra sedi e schede, stabilendo la connessione attiva tra le sedi di Listings API e le corrispondenti schede di Google Business Profile o Facebook. Una volta confermato l'abbinamento, la scheda inizia a sincronizzarsi con la sede di Listings API abbinata.

Struttura della richiesta. Il corpo deve essere racchiuso in un oggetto input e l'unico campo accettato è matchRecordIds, un array di ID dei record di abbinamento ([ID!]!, obbligatorio). L'invio di un corpo piatto (non racchiuso nell'oggetto) viene rifiutato con uno stato HTTP 400, così come un campo sconosciuto all'interno di input, ad esempio connectedAccountId o il precedente matchIds (Unknown field "connectedAccountId"). Una chiave aggiuntiva all'esterno di input viene ignorata anziché rifiutata. Questa richiesta non prevede un campo connectedAccountId; l'account viene dedotto dai record di abbinamento stessi.

Costruzione di un valore matchRecordIds. Un record di suggerimento di connessione non ha un id. Prendi il suo matchedDataDatabaseId e il suo accountType, uniscili separandoli con i due punti dopo il nome del tipo di record di abbinamento e codifica il risultato in base64:

accountTypeTipo di record di abbinamento
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 ID che non si decodifica in uno di questi tre tipi non produce un 400. La chiamata restituisce HTTP 200 con success: false e senza failedIds, quindi controlla success a ogni chiamata.

Questo endpoint è il passaggio finale del flusso di connessione in blocco: connetti l'account, esegui POST /connected-accounts/trigger-matches per generare suggerimenti, esaminali con l'endpoint dei suggerimenti di connessione, quindi conferma qui i record approvati.

Caso d'uso: accettazione in blocco degli abbinamenti verificati. Dopo che un'agenzia ha importato l'account Google di un cliente e ha verificato gli abbinamenti suggeriti nella tua interfaccia utente, invia i matchRecordIds approvati in un'unica chiamata anziché effettuare una chiamata per ogni abbinamento. Invia solo gli ID approvati dall'operatore, in modo che i suggerimenti non verificati o errati rimangano invariati.

La conferma di un abbinamento non invia immediatamente i dati a Google o Facebook; collega la sede di Listings API alla scheda sulla piattaforma di pubblicazione, consentendo la trasmissione dei successivi aggiornamenti della scheda. Una chiamata riuscita restituisce success: true con failedIds: null. Quando non è stato possibile confermare uno o più ID (ad esempio, un record di abbinamento sconosciuto o già utilizzato, oppure un abbinamento la cui sede è stata nel frattempo archiviata), tali ID vengono restituiti in failedIds e success è false, così puoi riprovare o mostrare solo gli errori. failedIds contiene gli ID del database decodificati, non i valori codificati che hai inviato, quindi associali ai corrispondenti valori di matchedDataDatabaseId. Per scegliere manualmente una singola scheda senza passare dai suggerimenti, usa invece 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="      ]    }  }'