このドキュメントは Channel App SDK と一緒に管理されています。最新 package とドキュメント全体の順序は、まず SDK README を確認してください。この Document の基準となる原文は GitHub 原文です。
WAM(Web App Module)は Channel client 内で開く React web UI です。App server ではなく、server credential を保持しません。Command、widget、custom tab など、user interaction が必要な Extension action で使用します。
Function が次の action result を返すと、Channel client が WAM を開きます。
appId は公開識別子で、name が WAM route を選択します。wamArgs は browser code から読める
ため、secret、token、provider credential、customer の raw content を入れないでください。
Developer portal には WAM root を登録し、build した SPA を ${WAM_ENDPOINT}/${name} で提供します。
React root を WamProvider でラップします。
Go app も同じ TypeScript/React WAM package を使用します。Go server は WAM action と Function を 提供し、static SPA route は別に mount します。
Host が注入した値は useWamData または useTypedWamData で読み取ります。Surface によって
appId、channelId、managerId、chatId、chatType、rootMessageId、wamArgs が提供される
場合があります。Optional 値が常に存在すると仮定せず、schema で検証してください。
WAM は Channel host が管理する manager/user authorization を使用します。App Secret、Signing Key、app token、channel token を WAM bundle や runtime data に渡さないでください。
App の business logic や app/bot 権限の処理には useCallFunction を使用します。Server は
TokenManager で channel token を取得し、必要な operation を実行します。
現在の manager/user が明示的に実行する Channel operation にだけ useNativeFunction を使用します。
Authorization は現在の Channel surface と role から host が判断し、server の TokenManager が
代わりに発行することはできません。
SDK が公開する Native Function name と input type だけを使用し、必要な permission を有効にします。
初期 size と content 変更後の resize には useWamSize、終了には useWamClose を使用します。
他の action の後に閉じる場合は、先に useCallFunction または useNativeFunction の完了を待ち、
その後で close() を呼びます。失敗を user が確認する前に WAM を閉じないでください。
Install 済み private app から WAM を開き、host bridge が利用できることを確認します。
WAM URL を直接開いた browser には host bridge がないことを処理します。
Optional context の欠落、不正な
wamArgs、Function error を test します。Manager/user permission denial と server-side channel-token flow を別々に test します。
初期 size、dynamic resize、正常な close を確認します。
Bundle、source map、log、
wamArgsに credential がないことを確認します。
Command から WAM を開く方法は Command ガイド、registration は Extension 完全ガイド、launch 前の検証は 本番運用準備ガイドを 確認してください。正確な hook API は TypeScript WAM reference、Go server integration は Go WAM referenceを基準にします。