本文へ移動

X に投稿する

自分の X 開発者アプリを Connection に接続します。

対象
CLIConsoleAPI

最終検証 · v1.4.16

Markdown

AGI Wings から X に投稿するには、自分の X 開発者アプリを用意します。 Wings が共用の X アプリを提供するわけではありません。

1. X を接続する

  1. X Developer Console で Project と App を用意します。
  2. App のユーザー認証の権限を Read and write にします。
  3. API Key と API Key Secret を確認します。
  4. 権限を設定した後で Access Token と Access Token Secret を発行します。
  5. 4つの値を JSON に入れ、クリップボードにコピーします。項目名は api_key、api_key_secret、access_token、access_token_secret です。

読み取り権限だけのときに作ったトークンは発行し直してください。 Developer Console から発行できるのは、その App の所有者のアカウントの分です。

wings connection add x-main --preset x_oauth1

2. コードを保存する

次を post-to-x.js として保存します。 event.text の内容を投稿する例です。

export default async function (event) {
  const response = await fetch('https://api.x.com/2/tweets', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ text: event.text }),
    agiWings: { connection: 'x' },
  })
  if (!response.ok) throw new Error('X request failed')
  return response.json()
}

3. 登録して投稿する

wings handler deploy --name post-to-x --file post-to-x.js --connection x=x-main
wings handler list

次のコマンドを実行すると、実際に X へ投稿します。 内容と費用を確認してから、一覧の ID を使って実行してください。

wings run <handler-id> --event '{"text":"Hello from Wings"}'
wings handler logs <handler-id>

X の画面で投稿が1件だけ作られたことを確認します。 失敗した場合も、投稿済みかどうかを先に確認してください。 同じコマンドをそのまま繰り返すと、二重に投稿するおそれがあります。

認証と費用

Wings は api.x.com への要求ごとに OAuth 1.0a / HMAC-SHA1 で署名します。 コードが渡した Authorization ヘッダーは置き換えます。 メディアのアップロードも api.x.com の v2 API を使います。

X API の利用料は、X から開発者アプリの所有者へ請求されます。 現在の料金と必要な権限は、X の案内で確認してください。 Schedule を設定する前に、投稿頻度と費用を確認します。

X に投稿する | AGI Wings 公式ドキュメント