POST/api/v4/locations/oauth_connect_url

Créer une URL de connexion OAuth pour un établissement

Crée un lien OAuth vers une plateforme de publication pour connecter un seul établissement, avec vos propres redirections en cas de réussite et d'erreur.

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.locationIdstringobligatoireLocation the connection will be attached to. Accepts a Base64-encoded Relay ID (e.g. `TG9jYXRpb246MTgwMDI4OQ==`) or a raw numeric location ID.
input.sitestringobligatoirePublisher to connect: `GOOGLE`, `FACEBOOK`, or `APPLE`.
input.successUrlstringobligatoireAbsolute URL the publisher returns the user to after they grant access.
input.errorUrlstringobligatoireAbsolute URL the publisher returns the user to if they cancel or the grant fails.

Exemple de requête

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

Request body
{  "input": {    "locationId": "TG9jYXRpb246MTgwMDI4OQ==",    "site": "GOOGLE",    "successUrl": "https://app.example.com/locations/1800289/connected",    "errorUrl": "https://app.example.com/locations/1800289/connect-failed"  }}

Réponses

200A single-use OAuth URL to send the user to. `errors` is `null` on success. The `url` shown is a placeholder; send the user to the `url` returned in your own response.
Response
{  "data": {    "createConnectUrl": {      "success": true,      "url": "https://connect.example.com/oauth?token=8f3c1d92-...",      "errors": null    }  }}
401Unauthenticated, missing or invalid API key.
403The key is valid but not permitted to connect this location (`SY90003`).

Renvoie une URL OAuth vers une plateforme de publication limitée à un seul établissement. Dirigez l'utilisateur final vers url ; une fois la procédure terminée, la plateforme de publication le redirige vers votre successUrl (ou errorUrl) et les identifiants obtenus sont rattachés à l'établissement sous la forme d'un compte connecté.

Cette procédure est l'équivalent, pour un seul établissement, des procédures de connexion groupée Connecter des comptes Google en masse et Connecter des comptes Facebook en masse, qui créent un lien à l'échelle d'un compte, puis s'appuient sur une mise en correspondance pour rattacher les fiches. Utilisez cette route lorsque vous savez déjà quel établissement l'utilisateur souhaite connecter et que vous voulez qu'il revienne à la page de cet établissement dans votre propre produit.

Les deux URL de redirection sont obligatoires et doivent être absolues ; une valeur relative ou impossible à analyser entraîne un retour success: true avec un null url, vérifiez donc url et pas seulement success. Le lien est à usage unique et lié à l'établissement que vous avez indiqué, créez donc un nouveau lien à chaque tentative plutôt que de le mettre en cache.

Cas d'utilisation : connecter un magasin depuis votre propre application

Lorsqu'un utilisateur connecte un magasin depuis votre application, envoyez une requête POST à cette route avec l'ID de l'établissement, site: "GOOGLE" et des URL de redirection qui renvoient vers votre application. Dirigez l'utilisateur vers url dans une fenêtre contextuelle ou par une redirection de la page entière. À son retour, consultez Obtenir les détails d'un compte connecté ou les informations de connexion de l'établissement pour confirmer que la connexion a bien été établie, puis affichez l'état connecté dans votre application. Si l'utilisateur abandonne la procédure, il arrive sur errorUrl et rien n'est rattaché, créez donc un nouveau lien pour lui permettre de réessayer.

Cas d'utilisation : publier via le compte Apple Business du propriétaire

Envoyez site: "APPLE" pour connecter un établissement au compte d'organisation Apple Business vérifié du propriétaire. Le propriétaire ouvre url, se connecte à ce compte et autorise l'accès. Dès lors, ListingsAPI publie les données Apple Maps de cet établissement via le compte du propriétaire.

Si le propriétaire ne possède pas de compte d'organisation Apple Business vérifié, ignorez cette procédure. ListingsAPI publie l'établissement via son propre compte Apple Business Connect, et Apple vérifie la soumission avant de la publier. Chaque établissement est connecté séparément, un même compte peut donc contenir des établissements des deux types.

Une fois le propriétaire revenu sur successUrl, appelez Lister les comptes connectés avec publisher=AppleAccount et vérifiez que le champ status du compte a pour valeur CONNECTED. Pour connaître la procédure complète, y compris la vérification de la fiche Apple Maps, consultez Connecter Apple Business Connect.

Ce point de terminaison crée des identifiants OAuth réels. La requête et la réponse présentées ci-dessus sont des exemples.

Request
curl -X POST 'https://listingsapi.com/api/v4/locations/oauth_connect_url' \  -H "Authorization: API $LISTINGSAPI_KEY" \  -H 'Content-Type: application/json' \  -d '{    "input": {      "locationId": "TG9jYXRpb246MTgwMDI4OQ==",      "site": "GOOGLE",      "successUrl": "https://app.example.com/locations/1800289/connected",      "errorUrl": "https://app.example.com/locations/1800289/connect-failed"    }  }'