2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

XのポストをIFTTT経由でkintoneに自動登録する方法

Posted at

こちらは kintone Advent Calendar 2025の3日目の記事です。

この記事では、Xの有料プランに加入しなくても、Xの投稿をkintoneに自動登録する方法を紹介します。

Screenshot 2025-12-03 at 16.20.34.png

とはいえ、IFTTTの有料プランには加入するので(Xよりは安い・・・!)、無料で全て組み立てられるわけではありません。

前フリ

Xの有料化にともない、XのAPIを使う機会が減りました。APIを使うための有料プランは少しお高めなので、Xの連携は諦めようかな・・・と思ってたのですが、IFTTTのProプランでXの連携が出来ることを知りました。「Xの有料プランを使ってないのに、XのAPIが使えるのってどういうこと?」と思われるかもしれませんが、おそらく裏ではIFTTT側が所持している有料のXアカウントで色々とAPIの処理がされてるのかと思います。

では、連携方法を案内します。

kintoneアプリの準備

まずはkintone側でデータを受け取るアプリを準備します。

フィールドの準備

下記のフィールドを含むアプリを作りましょう。

フィールドタイプ フィールド名 フィールドコード
文字列(1行) XのID twitter_id
文字列(1行) ポストのURL tweet_URL
文字列(複数行) ポストの内容 tweet_contents
日時 取得時間 tweeted_datetime
文字列(1行) ユーザのアイコンURL user_image

フォームのレイアウトは自由に設定しましょう。

Screenshot 2025-12-03 at 15.53.33.png

APIトークンの準備

アプリの設定からAPIトークンを生成します。「レコード追加」にチェックが入っていることを確認します。

Screenshot 2025-12-03 at 15.53.15.png

準備が出来たらアプリを公開しましょう。

IFTTTの準備

kintoneアプリの準備が出来たら、IFTTTを準備します。

Proプランの加入

この連携ではXのトリガーを使用します。使用するにはIFTTTのProプランに加入する必要がありますが、Xの有料プランに加入するよりは安いので、お得です!
1週間の試用期間も提供されてるので、POCを作る際等に試用してみてください。

If This の設定

「New tweet from search」トリガーを使用します。

Screenshot 2025-12-03 at 15.59.14.png

検索キーワードには次のような内容を設定します。

#kintone -is:retweet

お好きなキーワードを設定して良いのですが、「-is:retweet」を最後につけます。これはリポストされたポストを取得対象から外すためです。これを付けないと、同じポストが10回リポストされたらkintoneにもほぼ同じ内容のレコードが10件登録されちゃいます。

Then That の設定

アクションには「Webhooks」→「Make a web request」を使用します。このアクションを使えばkintoneに対して任意のHTTPリクエストが叩けます。

Screenshot 2025-12-03 at 16.00.00.png

下記の通りに設定します:

設定 備考
URL https://{サブドメイン名}.cybozu.com/k/v1/record.json {サブドメイン名}は自分が所持している環境に合わせる。 必要があれば、cybozu.comをkintone.comにも置き換える。
Method POST 使用するREST APIに合わせてメソッドを設定する。
Content Type application/json GETリクエストの場合は不要。
Additional Headers X-Cybozu-API-Token:{APIトークン} {APIトークン}はアプリから発行したAPIトークンを設定する。
Body {レコード情報が入ったJSON} フィールドの内容によって記載するJSONの内容が変わります。

最後のBodyはフィールドの設定によって変わります。この記事通りにフィールドを設定してる場合、下記のようなJSONを設定しましょう(アプリIDも仮定として298にします)。

{
  app: "298",
  record: {
    twitter_id: {
      value: "{{UserName}}"
    },
    tweet_URL: {
      value: "{{LinkToTweet}}"
    },
    tweet_contents: {
      value: "{{Text}}"
    },
    user_image: {
      value: "{{UserImageUrl}}"
    }
  }
}

{{UserName}}{{LinkToTweet}} には、Xから取得したポストの情報が動的に入るような仕組みになっています。JSONを記載するさいに、「Add ingredient」をクリックするとXからのフィールドの候補が表示され、それをクリックするとプレースホルダーが挿入されます。

Screenshot 2025-12-03 at 16.03.55.png

これでIFTTT側の設定は終わりなので、Appletが走るように続けてください。

動作確認

次項目の「仕様上の注意」を確認したうえで、しばらく待ってからXのポストが登録されるかを確認してください。
Screenshot 2025-12-03 at 11.32.25.png

仕様上の注意

こちらのIFTTT連携に関してはいくつかの仕様があるので、それによる制限があることを理解したうえで運用してみてください。

  1. 鍵アカウントのポストは取得できない
    これに関しては、XのAPIを叩いているのは自分のアカウントじゃないため、そういう仕様になってるんじゃないかと思います。
  2. 取得タイミングは5分に1回
    キーワードがXにポストされた瞬間に連携が発生するわけではありません。5分に1回、IFTTTからXのキーワードサーチが行われ、kintoneに情報が登録されます。AppletのView Activityからサーチのタイミングが確認出来ます。また、このサーチしたタイミングの日時がkintoneの日時フィールドに登録されるようになっています。
  3. 一度に取得できるポストは最大10件まで
    最大10件かつ最新の10件が取得されます。5分間に10件以上ポストがあった場合、その余計な分は漏れてkintoneに登録されません。

まとめ

IFTTTのProアカウントを使うとXのAPIが使えることを紹介しました。今回はシンプルに設定したため、仕様上の制限はありますが、気になるツイートをkintoneアプリにどんどんためる方法をご紹介させていただきました。ぜひ試してみてください。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?