/api/v4/connected-accounts/confirm-matchesConferma gli abbinamenti di connessione
Conferma gli abbinamenti suggeriti tra sedi e schede restituiti dall'endpoint dei suggerimenti di connessione.
Parametri
Corpo
| Nome | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| input | object | obbligatorio | Wrapper object. The entire request body must be nested under `input`. |
| input.matchRecordIds | array of strings | obbligatorio | Match-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.
{ "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`.
{ "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:
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.
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=" ] } }'