メインコンテンツまでスキップ

X(旧Twitter)と連携し、コンテンツ投稿時にXへ自動投稿する

KurocoではX(旧Twitter)と連携することで、コンテンツ投稿後にXへ自動投稿したり、APIを実行しXに投稿する等、X自動投稿機能が実装できます。

本チュートリアルでは、KurocoとXの連携方法と、コンテンツ投稿時にXへ自動投稿する方法を記載します。

注意

X側の仕様変更により、本チュートリアルの手順や画面が実際と異なる場合があります。最新情報はX Developer Platformでご確認ください。

注意

X APIは従量課金制(pay-per-use)です。ポスト作成は1件あたり$0.015(リンクを含む場合は$0.20)が課金されます。詳細はX Developer Consoleで確認できます。
Kurocoが使用するX API v2のエンドポイント(POST /2/tweets)を利用するには、Pay-per-useプランが必要です。Freeプランではポストの投稿ができません。

Xの設定

1. Xアカウントを作成する

KurocoとXを連携する場合、Xアカウントを取得していることが前提となります。まだアカウントを持っていない場合はX sign upよりアカウント作成をお願いします。

備考

Xへの登録方法は、Xヘルプセンターをご確認ください。

2. X Developer Consoleでアプリを作成する

X Developer Consoleにアクセスし、Xアカウントでサインインします。 初回ログイン時、Developer AgreementおよびPolicyの同意や、利用目的などの基本情報の入力を施された場合は対応します。

Image from Gyazo

Developer Consoleのダッシュボードから、Pay-per-useプランのアプリを作成します。「アプリ in Pay per use」を選択し、[New App](または[Create App])をクリックします。

Image from Gyazo

注意

「アプリ in Free」では、Kurocoが使用するX API v2のポスト投稿エンドポイント(POST /2/tweets)にアクセスできません。

環境は「Development」「Staging」「Production」から選択できます。本番運用では「Production」を選択してください。

Image from Gyazo

[新しいクライアントアプリケーションを作成]をクリックしてアプリを作成します。

3. 認証情報を保存する

アプリが作成されると、以下の3つの認証情報が生成されます。

認証情報説明Kurocoでの使用
コンシューマーキー(Consumer Key)アプリの識別に使用します。使用する
Secret Key(Consumer Secret)アプリの識別に使用します。使用する
ベアラートークン(Bearer Token)アプリ単位の認証(公開データの読み取り)に使用します。使用しない

コンシューマーキーとSecret Keyをコピーし、安全な場所に保存してください。

危険

認証情報は一度しか表示されません。紛失した場合は再生成が必要ですが、再生成すると以前の認証情報は無効になります。

Image from Gyazo

4. アプリの権限を設定する

Kurocoからポストを投稿するには、アプリの権限を「Read and write」に設定する必要があります。

Developer Consoleでアプリの設定画面を開き、Settingsを開きます。

Image from Gyazo

「アプリの権限」で「読み取りと書き取り」を選択します。

Image from Gyazo

権限レベル説明
読むポスト、ユーザー、公開データの閲覧のみ。投稿はできません。
読み取りと書き取りRead onlyの権限に加えて、ポストの投稿・削除、フォロー/フォロー解除、いいね、リポストが可能です。
読み書きおよびダイレクトメッセージRead and writeの権限に加えて、ダイレクトメッセージの送受信が可能です。

コールバックURI (リダイレクトURL)とウェブサイトURLを設定し、[Save]をクリックします。

項目記載例説明
コールバックURI / リダイレクトURLhttps://example.com/twitter-to-kurocoOAuth認可後のコールバックURLを記入します。
ウェブサイトURLhttps://example.comサイトURLを記入します。

Image from Gyazo

注意

権限を変更した場合、既存のAccess Tokenは新しい権限に対応しません。Kurocoとの連携後に権限を変更する場合は、アクセストークンとアクセストークンシークレットを再生成し、Kurocoに再設定する必要があります。

5. Access Token and Secretを生成する

Developer Consoleでアプリの設定画面から[Keys and tokens]を開きます。 同じ[Keys and tokens]画面で、「アクセストークン」の[再生成]をクリックします。

Image from Gyazo

アクセストークンとアクセストークンシークレットが生成されます。内容をコピーし、安全な場所に保存します。

Image from Gyazo

備考

Access Tokenはアプリの所有者のXアカウントに紐づきます。投稿はこのアカウントから行われます。

以上でX側の設定は完了です。

Kurocoの設定

Kuroco管理画面より、[外部システム連携] -> [Twitter]をクリックします。

Image from Gyazo

コピーした認証情報を記入し、[更新する]をクリックします。

X Developer Consoleの表記とKuroco管理画面の項目は以下のように対応しています。

Kuroco管理画面の項目X Developer Consoleの表記説明
有効にするチェックを入れます。
API KeyコンシューマーキーX Developer Consoleの「Consumer Key」を記入します。
API Key SecretコンシューマーキーシークレットX Developer Consoleの「Consumer Secret」を記入します。
Access TokenアクセストークンX Developer Consoleの「Access Token」を記入します。
Access Token SecretアクセストークンシークレットX Developer Consoleの「Access Token Secret」を記入します。

Image from Gyazo

Twitter Keyが登録されました。

Image from Gyazo

利用方法

カスタム処理を使って自動投稿する

コンテンツの追加・更新をトリガーにXへ自動投稿するには、カスタム処理を使用します。

Kuroco管理画面より、[オペレーション] -> [カスタム処理]をクリックします。

Image from Gyazo

カスタム処理一覧画面より[追加]をクリックします。

Image from Gyazo

カスタム処理を下記設定にて作成します。

項目記載例
タイトルX自動投稿
識別子kuroco_to_twitter
トリガートリガー:コンテンツの追加後
対象:コンテンツの追加後に投稿をしたいコンテンツ定義を選択
処理下記ソースコードの内容を記載します。
{assign var=url value="`$smarty.const.ROOT_URL`/article/`$topicsData.slug`"}
{twitter_post_message var=res text="記事の更新をしました!`$url`"}

入力後、[追加する]をクリックしカスタム処理を保存します。

備考

カスタム処理で使用するSmartyプラグイン{twitter_post_message}の詳細は、Smartyプラグインリファレンスをご確認ください。

設定後、対象コンテンツ定義にコンテンツを投稿すると、カスタム処理で設定した内容がXにポストされます。

注意

X APIの従量課金により、テスト投稿にも料金が発生します。リンクを含むポストは1件あたり$0.20が課金されるため、テスト時はご注意ください。

メール送信でXに投稿する提供版: β / RC

X連携が有効な状態で、カスタム処理のメール送信先に @tweets.twitter.r-cms.jp 宛のアドレスを指定すると、メール本文の内容がXへのポストとして投稿されます。

既存のLINE(@text.line.r-cms.jp)やChatworkへのメール送信と同じ仕組みです。

宛先フォーマット

<twitter_id>@tweets.twitter.r-cms.jp

<twitter_id> の部分には任意の識別子を指定します。投稿はサイトに設定されたX連携の認証情報(API Key / Access Token)を使用して行われます。

設定例

カスタム処理のメール送信アクションで、宛先に @tweets.twitter.r-cms.jp を指定します。メール本文がそのままXへのポストとして投稿されます。

項目設定値
宛先<twitter_id>@tweets.twitter.r-cms.jp
本文Xに投稿したいテキスト

関連ドキュメント


サポート

お探しのページは見つかりましたか?解決しない場合は、問い合わせフォームからお問い合わせいただくか、Slackコミュニティにご参加ください。