メインコンテンツまでスキップ

API 仕様

共通ベース URL(Host)

  • Preview(テスト): https://app-api-reward.unifi.me
  • Production(本番): https://api-reward.unifi.me

ユーザーマッピング状態の確認

特定のユーザーが現在 Unifi アカウントと連携済みかどうかを確認します。

GET /v1/mission-users

SectionNameTypeReqDescription
HeaderX-Partner-IdStringY発行された Partner ID
HeaderX-Api-KeyStringY発行された API Key
QuerypartnerUidStringYお客様のサービス内における一意のユーザー ID
ResponseresultBooleanYマッピング状態(true: 連携済み、false: 未連携)

Unifi Login の Auth URL(Auth)

ユーザーを Unifi のログイン画面へリダイレクトし、ワンタイムマッピングトークンの発行をトリガーする、フロントエンド専用の API です。(ブラウザの直接遷移であるため、ヘッダー認証キーは含みません)

GET /v1/mission-users/auth

SectionNameTypeReqDescription
QuerypartnerIdStringYお客様に発行された Partner ID
QueryredirectUrlStringYログイン後に戻るサービス Mini App の URL(*URL エンコードが必要)
QuerybrowserTypeStringN接続環境を指定します(MINI: LINE MINI、LIFF: LINE LIFF、WEB: その他。空の場合は WEB として動作します)
Response302 Found--構築された LINE LIFF ログイン URL へブラウザを即座にリダイレクトします

ユーザーマッピングの登録(Connect)

ワンタイムマッピングトークンを使用して、Unifi アカウントとお客様のサービスアカウント間の連携を確定します。

POST /v1/mission-users/connect

SectionNameTypeReqDescription
HeaderX-Partner-IdStringY発行された Partner ID
HeaderX-Api-KeyStringY発行された API Key
Body (JSON)tokenStringYURL パラメータ経由で受信したワンタイムマッピングトークン
Body (JSON)partnerUidStringYお客様のサービス内における一意のユーザー ID
Body (JSON)regionStringYユーザーの国コード(例:KR, JP, TW など)
Response200 OK--ボディは空、マッピング成功

ミッションの達成(Achieve)

ユーザーのミッション進捗および最終的な完了状態を、Unifi サーバーへリアルタイムで upsert します。(セキュリティと IP 制限:事前に合意したお客様のサービスサーバーの Outbound IP(Whitelist)からのみ呼び出すことができます)

この API が呼び出されると、Unifi はリクエストに含まれる missionKey からミッションを特定し、達成内容が有効かどうかを検証したうえで報酬を支払います。

POST /v1/achieve

SectionNameTypeReqDescription
HeaderX-Partner-IdStringY発行された Partner ID
HeaderX-Api-KeyStringY発行された API Key
Body (JSON)partnerUidStringYお客様のサービス内における一意のユーザー ID
Body (JSON)missionKeyStringYUnifi から提供された Mission Key
Body (JSON)completedBooleanYミッションの完了状態(一度 true が保存されると元に戻すことはできません)
Body (JSON)metadata.targetIntNミッションの最大目標値(進捗ゲージ UI 用)
Body (JSON)metadata.currentIntNミッションの現在の進捗値
Response200 OK--ボディは空、保存成功

データ送信例(JSON Payload)

{
  "partnerUid": "user_77799",
  "missionKey": "SAMPLE_MISSION_KEY_001",
  "completed": false,
  "metadata": {
    "target": 30,
    "current": 5
  }
}

エラーコード

CodeNameCategory
901ADMIN_PERMISSION_DENIEDAdmin
1101NOT_FOUND_MISSION_GROUPMissionGroup
1201NOT_FOUND_MISSIONMission
1401NOT_FOUND_REWARD_ASSETRewardAsset
1402NOT_SET_REWARD_ASSET_DECIMALSRewardAsset
1902NOT_FOUND_REWARD_BUDGETBudget
2101NOT_FOUND_PROMOTIONPromotion
2102IMMUTABLE_PROMOTION_FIELDPromotion

enum 定義

Enum NameValuesDescription
PromotionTypeCOMPOSITE, DAILY_CHECKプロモーションタイプ
PromotionStatusACTIVE, INACTIVEプロモーションの有効/無効状態
RecurrenceTypeONE_TIME, DAILY, WEEKLY, MONTHLY繰り返し周期
RewardTypeFIXED, LUCKY_DRAW固定報酬 / Lucky Draw
BudgetTypeFIXED, LUCKY_DRAW予算タイプ
AssetTypeFTアセットタイプ
ClaimStatusRESERVED, REQUESTED, REJECTED, SUCCEEDED, FAILED報酬請求(Claim)状態
TicketFilterNOT_RECEIVED, RECEIVED, DRAWNチケットフィルター