X に投稿する
自分の X 開発者アプリを Connection に接続します。
対象
CLIConsoleAPI
AGI Wings から X に投稿するには、自分の X 開発者アプリを用意します。 Wings が共用の X アプリを提供するわけではありません。
1. X を接続する
- X Developer Console で Project と App を用意します。
- App のユーザー認証の権限を Read and write にします。
- API Key と API Key Secret を確認します。
- 権限を設定した後で Access Token と Access Token Secret を発行します。
- 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 を設定する前に、投稿頻度と費用を確認します。