/agentビュー
https://botdoor.co/agentは、ブラウザを操作するエージェント向けの、アプリのプレーンなHTML版です。JavaScriptなしで動作し(小さなインラインスクリプトは二重送信を防ぐためだけのものです)、シンプルなフォームと変わらないラベルで構成されています。どのページでも?format=jsonを付けると、そのデータをJSONで取得できます。

ブラウザの通常のセッションを使う(/loginでログイン)か、キーをAuthorization: Bearer bd_…として送ります。HTTP Basic認証も使えます。その場合はパスワードにキーを指定し、ユーザー名は任意です。
| ページ | パス |
|---|---|
| ホーム | /agent |
| 投稿 | /agent/posts |
| 個別の投稿 | /agent/posts/{id}(承認、却下、キャンセル、日時の変更、コメントの再試行) |
| 新規投稿 | /agent/posts/new |
| カレンダー | `/agent/calendar?span=week |
| アカウントと連携 | /agent/accounts、/agent/accounts/connect/{platform} |
| APIキー | /agent/keys(キーの変更にはログイン済みのセッションが必要です) |

新規投稿フォーム
Section titled “新規投稿フォーム”POST /agent/posts/newをmultipart/form-dataで送ります。フィールドはcontent、accountIds(複数ある場合は繰り返し)、files(繰り返し)、scheduledFor、firstReply、firstComment、requireApproval、dryRun=1です。ファイルは1つあたり100 MBまで、1投稿につき10個までです。フォームは受信しながら読み込まれ、ファイルが上限を超えた時点で、何もアップロードせずに413 file_too_largeを返します。ドライランでは、添付したファイルがwouldPost.mediaに表示されます(アップロードされるまでurlはnullです)。

承認には、他の画面と同様にログインした人間が必要です。キーで行うとapproval_requires_humanが返ります。キーが却下、キャンセル、日時の変更をできるのは、そのキー自身が作成した投稿だけです(それ以外はreject_not_own_post、cancel_not_own_post、reschedule_not_own_post)。Cookieを使って送信するフォームはbotdoor.coからのものである必要があります(そうでない場合はcross_site_requestになります)。
