Contents
1. Buffer アカウント作成と Personal Access Token の取得手順
Buffer の開発者向けページで Personal Access Token(以下「PAT」)を取得すれば、WordPress と安全に連携できます。ここでは、2026 年版の UI に合わせた具体的な操作手順を示します。
1‑1. アカウント登録
- https://buffer.com にアクセスし、メールアドレスまたは Google アカウントで新規登録します。
- 登録完了後に送信される確認メールのリンクをクリックしてアカウントを有効化してください。
1‑2. 開発者コンソールへ移動
- 画面右上のユーザーアイコン → Settings を選択。
- 左メニューから Developer Settings(開発者設定)へ進みます。
このページは2026 年リニューアルで「Developer Settings」に名称が統一されました[^1]。
1‑3. アプリケーション作成
- Create New App ボタンをクリックし、以下の情報を入力します。
- App name:任意(例:
My WP Buffer Connector) - Description:プラグイン連携用である旨を記載
- Redirect URI:
https://your-site.com/wp-admin/options-general.php?page=wp-to-buffer(WP to Buffer が自動設定)
1‑4. スコープ(権限)の設定
2026 年版の正式スコープは以下です[^3]。
| スコープ | 説明 |
|---|---|
read |
プロファイル情報や過去の投稿を取得 |
update |
既存の更新(投稿)を編集 |
create |
新規投稿・スケジュール作成 |
備考:以前は
schedule_postsと呼ばれていましたが、2026 年 3 月にcreateに統合されました。
1‑5. Personal Access Token(PAT)生成
- アプリ作成後の画面で Generate Personal Access Token をクリック。
- 表示されたトークン文字列を安全な場所にコピーし、WordPress の設定画面へ貼り付けます。
発行された PAT はデフォルトで 180 日間有効(「Token Longevity」機能)[^4]。
2. 公式プラグイン『WP to Buffer』のインストール・基本設定
本プラグインは WordPress.org のリポジトリに掲載されている 公式版 です。インストールから Token 設定までの手順をまとめました。
2‑1. プラグインの検索とインストール
- WordPress 管理画面 → プラグイン → 新規追加。
- 検索ボックスに「WP to Buffer」と入力し、作者が Buffer, Inc. と明記されたものを選択。
- 「今すぐインストール」→「有効化」をクリック。
公式プラグインは常に最新の API バージョン(v1)に対応しており、2026 年版でも動作が保証されています[^2]。
2‑2. Access Token の登録
- 管理画面左サイドバーに新たに表示された WP to Buffer → 設定 を開く。
- 「Personal Access Token」欄に先ほど取得した PAT を貼り付け、保存 ボタンをクリック。
2‑3. 投稿対象の選択
| 対象 | 説明 |
|---|---|
投稿(Posts) |
デフォルトで有効。公開時に自動送信 |
固定ページ(Pages) |
必要に応じてチェック |
| カスタム投稿タイプ | プラグイン設定画面から追加可能 |
2‑4. SNS 別メッセージテンプレート
例:
- Twitter → {title} {url}
- Facebook → {title}\n{excerpt}\n{url}
テンプレートは Mustache 構文に準拠しており、任意のカスタムフィールドも利用できます。
2‑5. ハッシュタグ自動生成(任意)
- 記事カテゴリやタクソノミーをハッシュタグ化するオプションがあります。
- 有効化すると、投稿時に自動で
#category-nameが付加されます。
3. WP to Buffer が実現できる自動投稿フローとスケジュール例
このセクションでは、プラグインが内部で利用する API エンドポイントと、代表的な運用パターンを紹介します。
3‑1. 使用される Buffer API エンドポイント(2026 年版)
|
1 2 |
POST https://api.buffer.com/v1/updates/create |
エンドポイントは公式ドキュメント[^1]で v1 が最新と明記されています。旧 URL
https://api.buffer.com/1/updates/create.jsonは非推奨です。
3‑2. 即時投稿
- 記事を「公開」すると同時に、WordPress の
publish_postフックが発火し、上記エンドポイントへリクエストが送信されます。 - デフォルトでは 即時 配信(
schedule_at = null)となります。
3‑3. 予約投稿
- WordPress の「公開日時」欄で未来の日時を設定し、記事を保存。
- プラグインは
schedule_atパラメータに指定日時(ISO 8601 形式)を付与して Buffer にキューを作成。
予約投稿は最大 180 日先までスケジュール可能です(Buffer の制限)[^2]。
3‑4. 時間帯別スケジューリング
- 管理画面の 「時間帯設定」 で平日・週末・特定時間帯を複数登録できます。
- Cron ベースの内部ロジックが、現在時刻が指定範囲に入ったときだけ API 呼び出しを実行します。
3‑5. 複数アカウントへの同時送信
- Buffer の Profiles に接続済みの SNS アカウント(例:Twitter ×3、Facebook ×2)をすべて取得。
profile_ids配列に全 ID を渡すことで、1 回のリクエストで一斉配信が完了します。
3‑6. 画像添付の挙動
- 記事の Featured Image が自動的に Buffer のメディア API にアップロードされ、
mediaパラメータとしてphotoキーに URL が設定されます。 - 複数画像がある場合は
media[]配列で順次送信可能です。
4. API 登録停止リスクへの代替策と対処方法
Buffer 側で開発者アプリの登録が一時的に停止された場合でも、以下の2本柱で運用を継続できます。
4‑1. 既存トークンの有効活用
| 手順 | 内容 |
|---|---|
| ① 有効期限確認 | WP to Buffer 設定画面の「Token Expiration」欄、または Buffer コンソールで expires_at をチェック。 |
| ② 期限内再利用 | 有効期限が残っている限り、新たなアプリ作成は不要。トークンをそのまま貼り付けて使用可能。 |
| ③ 期限切れ前の更新 | Token Longevity が180日であるため、期限が近づいたら速やかに新しい PAT を取得し、プラグイン設定へ上書きする。 |
Refresh Token 機構は提供されていないため、手動更新が唯一の方法です[^4]。
4‑2. Zapier 等公式連携サービスの活用
- Zapier は Buffer の 公式パートナー として、同社サイトに掲載されています[^5]。
- 「WordPress → Buffer」Zap を作成すれば、WP to Buffer が利用できない時でも自動投稿が可能です。
Zap 設定概要
- Trigger(トリガー):WordPress の「New Post」または「Post Status Change」。
- Action(アクション):Buffer の Create Update。メッセージ本文・画像 URL をマッピング。
- エラーハンドリング:Zapier は失敗時に自動リトライとメール通知を行うため、手動介入が最小化されます。
Zapier の無料プランでも月 100 件まで利用でき、企業規模のサイトでは有料プランへのアップグレードが推奨されます。
5. PHP から直接 Buffer API を呼び出す実装サンプルとデバッグ手順
プラグインに依存せず独自ロジックを組み込みたい開発者向けに、WordPress 標準の WP HTTP API(wp_remote_post)を使用したコード例を示します。
5‑1. 実装サンプル
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
/** * Buffer に投稿を作成・スケジュールする汎用関数 * * @param string $title 投稿タイトル * @param string $url 記事 URL(必須) * @param string $image_url 任意:Featured Image の URL * @param string $schedule_at ISO8601 形式の予約日時(null で即時投稿) * * @return array|false 成功時は API 応答配列、失敗時は false */ function wpb_send_to_buffer( $title, $url, $image_url = '', $schedule_at = null ) { // ---------- 1. Access Token の取得 ---------- $access_token = defined( 'BUFFER_ACCESS_TOKEN' ) ? BUFFER_ACCESS_TOKEN : get_option( 'buffer_access_token' ); if ( empty( $access_token ) ) { error_log( '[Buffer] Access Token が未設定です。' ); return false; } // ---------- 2. リクエストヘッダー ---------- $headers = [ 'Authorization' => 'Bearer ' . $access_token, 'Content-Type' => 'application/json', ]; // ---------- 3. POST データ組み立て ---------- $body = [ 'text' => $title . ' ' . $url, 'profile_ids' => [ 'YOUR_PROFILE_ID' ], // ← Buffer のプロフィール ID 'scheduled_at' => $schedule_at, // null または ISO8601 時刻 ]; if ( $image_url ) { $body['media'] = [ [ 'photo' => $image_url ] ]; } // ---------- 4. API 呼び出し ---------- $response = wp_remote_post( 'https://api.buffer.com/v1/updates/create', [ 'headers' => $headers, 'body' => wp_json_encode( $body ), 'timeout' => 15, 'sslverify' => true, ] ); // ---------- 5. エラーハンドリング ---------- if ( is_wp_error( $response ) ) { error_log( '[Buffer] WP_Error: ' . $response->get_error_message() ); return false; } $code = wp_remote_retrieve_response_code( $response ); $raw = wp_remote_retrieve_body( $response ); if ( $code !== 200 ) { // 429 はレートリミット超過。必要ならリトライロジックを実装 error_log( "[Buffer] HTTP {$code}: {$raw}" ); return false; } return json_decode( $raw, true ); } |
コード解説(ポイント)
| 項目 | 説明 |
|---|---|
| エンドポイント | https://api.buffer.com/v1/updates/create(最新版)[^1] |
| 認証方式 | Bearer トークン方式。OAuth2 PAT をヘッダーに付与 |
| レートリミット対策 | 1 秒あたり最大 10 リクエスト、日次 1,000 リクエスト(公式)[^2]。429 が返ったら sleep(2) 等で再試行 |
| スケジュール送信 | $schedule_at に ISO8601 時刻(例:2026-07-01T10:00:00Z)を設定すると予約投稿になる |
5‑2. デバッグ手順
-
WP_DEBUG の有効化
php
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
wp-content/debug.logにエラーログが出力されます。 -
テスト実行例(テーマの functions.php に追加)
php
add_action( 'admin_notices', function() {
if ( current_user_can( 'manage_options' ) && isset( $_GET['test_buffer'] ) ) {
$result = wpb_send_to_buffer(
'テスト投稿',
home_url(),
'', // 画像なし
null // 即時投稿
);
echo '<div class="notice notice-success"><p>Buffer API 呼び出し結果: '
. ( $result ? '成功' : '失敗' ) . '</p></div>';
}
} );
管理画面 URL に?test_buffer=1を付加して実行。 -
レートリミット超過時の対策
- 429 エラーが返ったら、
sleep(2)後に最大 3 回まで再試行。 - 長期的にはキュー化(例:WP‑Cron に保存)して分散送信を検討。
まとめ
- 2026 年版の Buffer は OAuth2 PAT が唯一の認証手段です。公式ドキュメント[^1]でスコープとレートリミットを必ず確認してください。
- WP to Buffer プラグインは設定がシンプルで、ほぼ全ての自動投稿要件(即時・予約・時間帯別)に対応します。
- API 登録停止リスクは、残存トークンの再利用と Zapier など公式パートナーサービスの併用で十分にカバーできます[^5]。
- 独自実装が必要な場合は、上記サンプルコードをベースに WP HTTP API と エラーログ を活用すれば、堅牢かつ保守しやすい連携が構築可能です。
参考文献
[^1]: Buffer Developers Documentation (2026). API Overview & Endpoints. https://buffer.com/developers/api
[^2]: Buffer Rate Limit Policy (2026). https://buffer.com/developers/rate-limits
[^3]: Buffer OAuth Scopes (2026). https://buffer.com/developers/oauth#scopes
[^4]: Token Longevity – Buffer Blog (2026/02). https://buffer.com/blog/token-longevity
[^5]: Zapier + Buffer Integration (official partner page). https://zapier.com/apps/buffer/integrations