POST /api/start

アクティビティを作成し、その起動ボタンを取得します。スマートフォンでボタンを開くとカードが表示されます。

すべての呼び出しで、APIキーをx-api-keyヘッダーで送ります。すべてのリクエストはContent-Type: application/jsonで、フィールド名は正確なcamelCaseです(accentColorHex。accent_color_hexは不可)。エラーの一覧はエラーと制限にあります。

本文

フィールド型説明
stateobject必須。カードに表示する内容。レイアウトとstateオブジェクトを参照してください。
widgetContainerIdstring必須。ウィジェットを示す任意のテキスト(例:「pizza-tracker」)。このウィジェットへの以降のすべての呼び出しで同じ値を送ります。スマートフォンはコンテナごとに1つのアクティビティを保持します。
groupstring1回の呼び出しで多くのアクティビティを更新または終了するためのラベル。
brandobjectアクティビティの名前とブランディング。brandオブジェクトを参照してください。
reusebooleantrueにすると、1つの起動ボタンを多くのスマートフォンで使えます。1つのボタンで多くのスマートフォンにを参照してください。
keepAlivebooleantrueにすると、iOSに終了される前に、7時間ごとにカードを再起動します。再起動のたびに通知されます。カウントダウンなど、8時間より長く続くものに使います。長時間のアクティビティを参照してください。
webhookIdentifierstringこのアクティビティのWebhookイベントを、この識別子を持つエンドポイントに送ります。Webhookを参照してください。

基本的な開始

最もシンプルな開始。見出しとロゴ付きのプログレスバー。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
curl -X POST https://api.webliveactivity.com/api/start \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: wla_your_key' \
  -d '{
  "widgetContainerId": "acme-orders",
  "brand": {
    "title": "Order #1234"
  },
  "state": {
    "layout": "progress",
    "primaryText": "Order received",
    "progress": 0.1,
    "accentColorHex": "#0A84FF",
    "headerIconUrl": "https://acme.example/logo.png"
  }
}'

すべてのオプションを使った開始

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
curl -X POST https://api.webliveactivity.com/api/start \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: wla_your_key' \
  -d '{
  "widgetContainerId": "acme-orders",
  "group": "order-tracker",
  "keepAlive": true,
  "webhookIdentifier": "staging",
  "brand": {
    "title": "Order #1234",
    "name": "Acme",
    "logo": "https://acme.example/logo.png",
    "description": "Track your Acme order from kitchen to door",
    "color": "#06C167"
  },
  "state": {
    "layout": "progress",
    "primaryText": "Order received",
    "secondaryText": "We will start soon",
    "progress": 0.1
  }
}'

レスポンス

201を返します。更新と終了のためにactivityIdを保存しておきます。userIdは同じIDで、スマートフォンのアプリが使う名前です。何も送らなかった場合、groupは空です。

1
2
3
4
5
6
7
8
9
10
{
  "ok": true,
  "activityId": "act-8f2cqa4mx7rd",
  "userId": "act-8f2cqa4mx7rd",
  "group": "order-tracker",
  "widgetContainerId": "acme-orders",
  "links": {
    "iframe": "<iframe src=\"https://api.webliveactivity.com/embed/button?type=track&userId=act-8f2cqa4mx7rd\" width=\"340\" height=\"95\" style=\"border:0;color-scheme:light\"></iframe>"
  }
}

起動ボタン

links.iframeをWebページに置きます。スマートフォンではタップでアクティビティが開きます。パソコンではクリックすると、スマートフォンでスキャンするQRコードが表示されます。

iframeのsrcには、3つの任意の設定があります:

設定値説明
color6桁の16進数カラー(#なし)ボタンの色。例:&color=06C167。明るい色では文字が暗くなります。デフォルトはtypeの色です。
themelight(デフォルト)、darkボタンの下に表示される「Powered By」の文字色。暗いページでは、&theme=darkを追加し、iframeのstyleでcolor-scheme:lightをcolor-scheme:darkに変えます。
typetrack(デフォルト)、launch、addボタンのアイコン、ラベル、デフォルトの色。プッシュグループではnotify、subscribe、followを使います。

背景は透明です。変えられるのは色だけです。アイコンとラベルはtypeで決まり、どのプランでもボタンの下に「Powered By」の行が表示されます。

ボタンを置いたページが、スマートフォンでアクティビティと一緒に表示されるサイトになります。これはAPIでは設定できません。リファラーを隠すページ(Referrer-Policy: no-referrerやsame-origin、またはiframeのreferrerpolicy="no-referrer")では、ボタンは読み込まれません。

ライブアクティビティを​「開発」せずに​作り始めませんか?

今日から​作り始めませんか?

App Storeへの申請も、ネイティブのコードベースの保守も不要です。リンクひとつでアクティビティがユーザーの画面に届き、使いやすいAPIで最新の状態を保てます。

毎月7,000回の無料プッシュ付き

Movistar RidersMovistar Ridersテロリスト9
マップOverpass
12HeroicHeroicカウンターテロリストCSGOCSGO eスポーツライブで見る
8 PM
洗濯中8:00 PMまでに完了
洗濯床掃除昼食
Domino's調理中
912
Movistar RidersMovistar Ridersテロリスト9
マップOverpass
12HeroicHeroicカウンターテロリストCSGOCSGO eスポーツライブで見る
ライブ
ライブを見るMolyのねこカメラ3秒前に更新ねこカメラ
ただいま焼き上げ中Matがご注文の品を焼いています。Domino's
調理中移動中配達完了
思考中
APIエンドポイントを調査中Foodscoutの変更を準備中
思考中作業中完了
あと30分でお届けMatが急いで向かっています。Domino's
移動中配達完了
GTA00:00
GTA00:00:00GTA VI
San Francisco Shockホーム1
マップMidtown
3
Dallas FuelアウェイOverwatch Leagueライブで見る
United 1423ゲートB22 · 座席14C · SFO → JFK
搭乗中飛行中到着
搭乗中
あと6分で到着Marcus · Toyota CamryToyota Camry
移動中到着
6分
Movistar RidersMovistar Ridersテロリスト9
マップOverpass
12HeroicHeroicカウンターテロリストCSGOCSGO eスポーツライブで見る
8 PM
洗濯中8:00 PMまでに完了
洗濯床掃除昼食
Domino's調理中
912
Movistar RidersMovistar Ridersテロリスト9
マップOverpass
12HeroicHeroicカウンターテロリストCSGOCSGO eスポーツライブで見る
ライブ
ライブを見るMolyのねこカメラ3秒前に更新ねこカメラ
ただいま焼き上げ中Matがご注文の品を焼いています。Domino's
調理中移動中配達完了
思考中
APIエンドポイントを調査中Foodscoutの変更を準備中
思考中作業中完了
あと30分でお届けMatが急いで向かっています。Domino's
移動中配達完了
GTA00:00
GTA00:00:00GTA VI
San Francisco Shockホーム1
マップMidtown
3
Dallas FuelアウェイOverwatch Leagueライブで見る
United 1423ゲートB22 · 座席14C · SFO → JFK
搭乗中飛行中到着
搭乗中
あと6分で到着Marcus · Toyota CamryToyota Camry
移動中到着
6分
Movistar RidersMovistar Ridersテロリスト9
マップOverpass
12HeroicHeroicカウンターテロリストCSGOCSGO eスポーツライブで見る
8 PM
洗濯中8:00 PMまでに完了
洗濯床掃除昼食
Domino's調理中
912
Movistar RidersMovistar Ridersテロリスト9
マップOverpass
12HeroicHeroicカウンターテロリストCSGOCSGO eスポーツライブで見る
ライブ
ライブを見るMolyのねこカメラ3秒前に更新ねこカメラ
ただいま焼き上げ中Matがご注文の品を焼いています。Domino's
調理中移動中配達完了
思考中
APIエンドポイントを調査中Foodscoutの変更を準備中
思考中作業中完了
あと30分でお届けMatが急いで向かっています。Domino's
移動中配達完了
GTA00:00
GTA00:00:00GTA VI
San Francisco Shockホーム1
マップMidtown
3
Dallas FuelアウェイOverwatch Leagueライブで見る
United 1423ゲートB22 · 座席14C · SFO → JFK
搭乗中飛行中到着
搭乗中
あと6分で到着Marcus · Toyota CamryToyota Camry
移動中到着
6分