---
canonical: "https://agi-labo.com/tools/wings/docs/x-posts"
title: "X に投稿する"
description: "自分の X 開発者アプリを Connection に接続します。"
section: "主要機能"
order: 10
pageType: "how-to"
lastVerifiedVersion: "1.4.16"
lastVerifiedAt: "2026-10-15"
draft: false
surfaces: ["cli", "console", "api"]
plans: ["free", "member"]
---

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 の所有者のアカウントの分です。

```sh
wings connection add x-main --preset x_oauth1
```

## 2. コードを保存する

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

```js
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. 登録して投稿する

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

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

```sh
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 を設定する前に、投稿頻度と費用を確認します。
