Conecte o Apple Business Connect

Publique no Apple Maps via conta verificada do dono no Apple Business ou ListingsAPI, se não tiver uma. Confira a listagem e desconecte se o cliente sair.

A ListingsAPI publica o nome, a categoria, o endereço, o telefone, o site e os horários de um local no Apple Maps e na Siri de uma das duas maneiras.

O proprietário da empresa temO que acontece
Uma conta de organização verificada no Apple BusinessO proprietário conecta essa conta ao local com um link OAuth (etapas 1 e 2), e a ListingsAPI publica por meio da conta dele.
Nenhuma conta de organização verificada no Apple BusinessNão é necessário estabelecer uma conexão. A ListingsAPI envia o local por meio de sua própria conta do Apple Business Connect, e a Apple verifica o envio antes de publicar os dados. Vá para a etapa 3.

O OAuth conecta um local por vez, com site definido como APPLE.

Pule as etapas 1 e 2 se o proprietário não tiver uma conta de organização verificada no Apple Business.

POST /locations/oauth_connect_url retorna uma URL OAuth com escopo limitado a um local. Envie site: "APPLE" com o ID do local e suas duas URLs de redirecionamento. Referência: Conecte um local ao Apple Business Connect.

Connect link
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"  }}'

A resposta é data.createConnectUrl com success, url e errors. Redirecione o proprietário para url. Ele faz login em sua conta de organização verificada no Apple Business, concede acesso e é redirecionado para seu successUrl; se ele cancelar ou a concessão de acesso falhar, será redirecionado para errorUrl.

O link é de uso único, então crie um novo a cada tentativa. Uma URL de redirecionamento relativa ou que não possa ser interpretada resulta em success: true com um url com valor null, então verifique url antes de redirecionar. Uma chave sem permissão para acessar esse local recebe 403 com SY90003.

2. Confirme a conexão

Depois que o proprietário retornar ao seu successUrl, liste as contas conectadas filtrando pela Apple. Esta é uma página com paginação por deslocamento: records[] mais pageInfo.totalRecords, paginada com page e perPage.

List accounts
curl "https://listingsapi.com/api/v4/connected-accounts?publisher=AppleAccount&page=1&perPage=20" \-H "Authorization: API $LISTINGSAPI_KEY"

Guarde o connectedAccountId. status é CONNECTED, MATCH_IN_PROGRESS ou CONNECTIVITY_ISSUE; qualquer valor diferente de CONNECTED significa que o proprietário precisa abrir um novo link de conexão antes que as atualizações possam ser feitas por meio da conta dele.

3. Verifique a listagem no Apple Maps

Esta etapa é a mesma, independentemente de o proprietário ter conectado uma conta. GET /locations/{locationId}/listings/premium retorna um registro por plataforma de publicação premium incluída no plano. O registro do Apple Maps tem site.url definido como business.apple.com.

Apple Maps status
curl https://listingsapi.com/api/v4/locations/TG9jYXRpb246MTgwMDI4OQ==/listings/premium \-H "Authorization: API $LISTINGSAPI_KEY"

O registro não é SYNCED e listingUrl é null até que a Apple publique o cartão do local. Quando o local é enviado por meio da conta da ListingsAPI, a Apple verifica o envio antes de publicar. Assim que a Apple publica, o registro é SYNCED com listingUrl definido como a URL da listagem publicada no Apple Maps. Para consultar a tabela completa de status, veja Verifique o status das listagens e os links publicados.

Os resultados da Siri vêm da listagem do local no Apple Maps. O status desses resultados é retornado por GET /locations/{locationId}/voice-assistants no voiceIdentifier SIRI.

4. Confirme as correspondências sugeridas

Se as sugestões de conexão incluírem registros da Apple, o accountType desses registros será APPLE, e o tipo de registro de correspondência que você codifica para Confirme as correspondências de conexão será AppleLocationMatchedData. Crie o ID codificando AppleLocationMatchedData:<matchedDataDatabaseId> em base64 e envie-o em matchRecordIds.

5. Desconecte o local quando um cliente sair

Esta etapa se aplica apenas a um local conectado com OAuth. POST /locations/oauth-disconnect remove a conexão entre um local e a conta do Apple Business do proprietário. Envie site: "APPLE". O local permanece na sua conta, e suas conexões com outras plataformas de publicação não são afetadas. Referência: Desconectar um local do Apple Business Connect.

Disconnect
curl -X POST https://listingsapi.com/api/v4/locations/oauth-disconnect \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{ "input": { "locationId": "TG9jYXRpb246MTgwMDI4OQ==", "site": "APPLE" } }'

A resposta é data.disconnectConnectedAccountsLocations com success e errors. Um local sem conexão ativa com a Apple retorna SY10057, e uma solicitação sem site nem providerId retorna SY10056.

6. O que acontece em seguida

Não há evento de webhook connection.* para a Apple. Se o proprietário se conectou com OAuth, confirme a conexão listando as contas (etapa 2). Em ambos os casos, verifique o status de publicação lendo o registro do Apple Maps (etapa 3). O evento listing.submission informa cada envio a uma plataforma de publicação quando ele atinge um estado final.

Se a conexão posteriormente informar CONNECTIVITY_ISSUE, crie um novo link de conexão (etapa 1) e peça ao proprietário que faça login novamente.

Próximas etapas