purelovers 連携
Speakeasy は purelovers.com と連携し、顧客データの同期とチャットセッションの発行を行います。
連携アーキテクチャ
Section titled “連携アーキテクチャ”セッション発行
Section titled “セッション発行”purelovers.com の顧客がチャットを利用する際、Tap Gateway 経由でセッションを取得します。
POST /api/v1/auth/sessionX-API-Key: {TAP_PURELOVERS_API_KEY}
{ "pureloversUserId": "user123", "pureloversShopId": "shop456", "name": "田中太郎", "email": "tanaka@example.com", "profileImageUrl": "https://..."}{ readonly token: string; // Bearer トークン readonly expiresAt: string; // 有効期限 readonly user: { readonly id: string; // Vault ユーザー ID readonly contactId: string; // Cellar 連絡先 ID readonly shopId: string; // 店舗 ID };}店舗データ同期
Section titled “店舗データ同期”店舗情報の同期
Section titled “店舗情報の同期”Counter の店舗設定画面から purelovers のデータを同期できます。
Base RPC: syncShopFromPurelovers({ shopId })purelovers API クライアント
Section titled “purelovers API クライアント”@speakeasy/purelovers-client パッケージが purelovers API へのアクセスを提供します。
import { fetchPurelovers } from '@speakeasy/purelovers-client';
const result = await fetchPurelovers({ baseUrl: env.PURELOVERS_API_URL, apiKey: env.PURELOVERS_API_KEY, path: '/speakeasy/shop', params: { shop_id: pureloversShopId }, basicAuth: env.PURELOVERS_BASIC_AUTH, // レビュー環境用 cookies: env.PURELOVERS_COOKIES // レビュー環境用});API クライアントの特徴
Section titled “API クライアントの特徴”| 特徴 | 説明 |
|---|---|
| snake_case → camelCase | レスポンスの自動変換 |
| API Key 認証 | X-Api-Key ヘッダー |
| Basic Auth | レビュー環境対応 |
| Cookie 透過 | レビュー環境対応 |
purelovers 連携データ
Section titled “purelovers 連携データ”contact_purelovers テーブル
Section titled “contact_purelovers テーブル”userId で紐付けし、1 purelovers ユーザー = 1 レコードを複数店舗で共有します。
| フィールド | 説明 |
|---|---|
pureloversId | purelovers ユーザー ID(UNIQUE) |
userId | ユーザー ID(NOT NULL) |
name | purelovers 表示名 |
image | プロフィール画像 URL |
birthDate | 生年月日 |
emailNotificationEnabled | メール通知の有効/無効 |
shop_purelovers テーブル
Section titled “shop_purelovers テーブル”| フィールド | 説明 |
|---|---|
shopId | Speakeasy 店舗 ID |
pureloversShopId | purelovers 店舗 ID |
チャット API
Section titled “チャット API”purelovers からのチャット操作は Tap Gateway の REST API 経由で行います。
| エンドポイント | 説明 |
|---|---|
GET /api/v1/rooms | チャットルーム一覧 |
POST /api/v1/rooms/enter | ルーム入室(Upsert) |
GET /api/v1/rooms/{id}/messages | メッセージ取得 |
POST /api/v1/rooms/{id}/messages | メッセージ送信 |
GET /ws | WebSocket 接続 |
詳細な API 仕様は card.plfumg.com の Scalar API Reference を参照してください。
- Webhook 受信 - purelovers からのイベント通知
- 連絡先管理 概要 - 連絡先の purelovers 連携
- ログインフロー - 匿名認証フロー
- Cellar 店舗テーブル - shop_purelovers テーブル
- Cellar 連絡先テーブル - contact_purelovers テーブル