POST/api/v4/locations/oauth_connect_url

1つの拠点用のOAuth接続URLを作成

1つの拠点を接続する掲載先のOAuthリンクを、独自の成功時およびエラー時のリダイレクト先を指定して作成します。

API キーが必要です。ヘッダーの形式とキーのローテーションについては認証を参照してください。

パラメーター

ボディ

名前型必須説明
inputobject必須Wrapper object. The entire request body must be nested under `input`.
input.locationIdstring必須Location the connection will be attached to. Accepts a Base64-encoded Relay ID (e.g. `TG9jYXRpb246MTgwMDI4OQ==`) or a raw numeric location ID.
input.sitestring必須Publisher to connect: `GOOGLE`, `FACEBOOK`, or `APPLE`.
input.successUrlstring必須Absolute URL the publisher returns the user to after they grant access.
input.errorUrlstring必須Absolute URL the publisher returns the user to if they cancel or the grant fails.

リクエストの例

そのまま貼り付けられるボディです。プレースホルダーの ID と値をご自身のものに置き換えてください。

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

レスポンス

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`).

1つの拠点を対象とする掲載先のOAuth URLを返します。エンドユーザーをurlに誘導します。手続きが完了すると、掲載先はユーザーを指定のsuccessUrl(またはerrorUrl)にリダイレクトし、取得された認証情報が接続済みアカウントとしてその拠点に紐付けられます。

これは、一括接続フローであるGoogleアカウントの一括接続およびFacebookアカウントの一括接続に対応する、単一拠点用のフローです。一括接続フローでは、アカウント全体を対象とするリンクを作成し、その後、照合によって掲載情報を紐付けます。ユーザーが接続する拠点がすでにわかっていて、自社製品内のその拠点のページにユーザーを戻したい場合は、このルートを使用します。

両方のリダイレクトURLが必須で、絶対URLである必要があります。相対URLや解析できない値を指定すると、success: trueとnullのurlが返されるため、successだけでなくurlを確認してください。リンクは1回限り有効で、指定した拠点に紐付いているため、キャッシュせずに試行ごとに新しいリンクを作成してください。

ユースケース:自社アプリから1つの店舗を接続

ユーザーが自社アプリから1つの店舗を接続する際は、拠点のID、site: "GOOGLE"、自社アプリに戻るリダイレクトURLを指定して、このルートにPOSTリクエストを送信します。ポップアップまたはページ全体のリダイレクトで、ユーザーをurlに誘導します。ユーザーが戻ったら、接続済みアカウントの詳細を取得または拠点の接続情報を読み取って接続が完了したことを確認し、アプリ内に接続済みの状態を表示します。ユーザーがフローを中断するとerrorUrlに移動し、何も紐付けられないため、新しいリンクを作成して再試行できるようにします。

ユースケース:オーナーのApple Businessアカウントを通じて公開

site: "APPLE"を送信して、1つの拠点をオーナーの確認済みApple Business組織アカウントに接続します。オーナーはurlを開き、そのアカウントにサインインしてアクセスを許可します。それ以降、ListingsAPIはオーナーのアカウントを通じて、その拠点のApple Mapsデータを公開します。

オーナーが確認済みのApple Business組織アカウントを持っていない場合は、このフローをスキップします。ListingsAPIは自社のApple Business Connectアカウントを通じてその拠点を公開し、Appleは公開前に送信内容を確認します。各拠点は個別に接続されるため、1つのアカウントに両方の種類の拠点を含めることができます。

オーナーがsuccessUrlに戻ったら、publisher=AppleAccountを指定して接続済みアカウントの一覧を取得を呼び出し、アカウントのstatusがCONNECTEDであることを確認します。Apple Mapsの掲載情報を確認する方法を含むフロー全体については、Apple Business Connectを接続を参照してください。

このエンドポイントは本番のOAuth認証情報を作成します。上記のリクエストとレスポンスはサンプルです。

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