POST/api/v4/locations/oauth_connect_url

Conectar una ubicación a Apple Business Connect

Crea un enlace OAuth de Apple Business Connect: ListingsAPI publica la ubicación en Apple Maps con la cuenta verificada de Apple Business del dueño.

Requiere una clave de API. Consulta Autenticación para conocer el formato del encabezado y la rotación de claves.

Parámetros

Cuerpo

NombreTipoObligatorioDescripción
inputobjectobligatorioWrapper object. The entire request body must be nested under `input`.
input.locationIdstringobligatorioLocation to connect. Accepts a Base64-encoded Relay ID (e.g. `TG9jYXRpb246MTgwMDI4OQ==`) or a raw numeric location ID.
input.sitestringobligatorioSet to `APPLE`.
input.successUrlstringobligatorioAbsolute URL in your application the owner returns to after granting access.
input.errorUrlstringobligatorioAbsolute URL in your application the owner returns to if they cancel or the grant fails.

Solicitud de ejemplo

Cuerpo listo para pegar. Sustituye los ID y valores de ejemplo por los tuyos.

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

Respuestas

200A single-use link to send the owner to. `errors` is `null` on success. The `url` shown is a placeholder; send the owner 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`).

Úsalo cuando el propietario del negocio tenga una cuenta de organización verificada de Apple Business. Dirige al propietario a url; iniciará sesión en Apple Business Connect, concederá acceso y volverá a tu successUrl. A partir de ese momento, ListingsAPI publicará el nombre, la categoría, la dirección, el teléfono, el sitio web y el horario de esa ubicación en Apple Maps a través de la cuenta del propietario. Si cancela o falla la concesión de acceso, volverá a errorUrl y no se conectará nada.

Si el propietario no tiene una cuenta de organización verificada de Apple Business, omite esta llamada. ListingsAPI publica la ubicación a través de su propia cuenta de Apple Business Connect, y Apple verifica el envío antes de publicarlo.

Apple conecta una ubicación por enlace. Para conectar varias ubicaciones, crea un enlace para cada una. Ambas URL de redirección deben ser absolutas; un valor relativo o que no se pueda analizar se devuelve como success: true con un null url, así que comprueba url antes de redirigir. El enlace es de un solo uso, así que crea uno nuevo para cada intento.

Confirmar la conexión

Después de que el propietario vuelva a successUrl, llama a Listar las cuentas conectadas con publisher=AppleAccount. Un valor de CONNECTED en status significa que las actualizaciones se realizan a través de la cuenta del propietario. MATCH_IN_PROGRESS o CONNECTIVITY_ISSUE significa que el propietario tiene que abrir un nuevo enlace de conexión.

Para dejar de publicar a través de la cuenta del propietario, usa Desconectar una ubicación de Apple Business Connect. Para consultar el flujo completo, incluido cómo comprobar la ficha de Apple Maps, consulta Conectar Apple Business Connect.

Esta página documenta el caso site: "APPLE" de Crear una URL de conexión OAuth para una ubicación.

Este endpoint crea credenciales OAuth reales. La solicitud y la respuesta de muestra anteriores son ejemplos.

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": "APPLE",      "successUrl": "https://app.example.com/locations/1800289/apple/connected",      "errorUrl": "https://app.example.com/locations/1800289/apple/connect-failed"    }  }'