ADVERTISEMENT

【Googleスプレッドシート】Twitter/X APIで投稿データ取込!最新ツイート一覧の作成

【Googleスプレッドシート】Twitter/X APIで投稿データ取込!最新ツイート一覧の作成
🛡️ 超解決

TwitterやXの投稿データをまとめてスプレッドシートに取り込みたいと思ったことはありませんか。手動でコピー&ペーストするのは手間がかかり、リアルタイム性も失われてしまいます。しかし、Twitterの公式APIを使えば、特定キーワードやユーザーのツイートを自動で取得して一覧化できるようになります。この記事では、GoogleスプレッドシートとTwitter/X APIを連携させる具体的な手順を、初心者にもわかりやすく解説します。

【要点】Twitter/X APIで最新ツイートをスプレッドシートに自動で取り込む方法

  • Twitter Developer Portalでプロジェクトを作成: APIキーやBearer Tokenを取得するための必須の準備工程です。
  • Apps Scriptでスクリプトを記述: Bearer Token認証を使ってツイートを取得し、スプレッドシートに書き込むコードです。
  • トリガー設定で自動更新: スプレッドシート上で定期的に最新ツイートを再取得できるようになります。

ADVERTISEMENT

Twitter/X APIをスプレッドシートで使う仕組み

Twitter/X APIは、Twitter社が提供するWeb APIで、ツイートの検索や投稿などの操作をプログラムから行えます。スプレッドシートで利用するには、Googleが提供するApps ScriptというJavaScriptベースのスクリプト環境を使います。Apps ScriptからAPIにリクエストを送信し、返ってきたJSONデータをパースしてシートに書き込む流れです。APIの認証方式にはいくつかありますが、今回はアプリ単独で使えるBearer Token(OAuth 2.0 Bearer Token)を使用します。この方式は自分のアカウントのツイートだけでなく、公開ツイートの検索もできます。ただし、レート制限(15分間で最大450リクエスト)があるため、頻繁な更新が必要な場合は注意してください。

APIキーを取得する手順

最初に、Twitter Developer PortalでAPIキーを取得します。以下の手順に従ってください。

  1. Twitter Developer Portalにアクセス
    ブラウザで https://developer.twitter.com にアクセスし、自分のTwitterアカウントでログインします。プロジェクトとアプリを作成するための画面が表示されます。
  2. 新しいプロジェクトを作成
    「Projects & Apps」タブで「New Project」をクリックし、プロジェクト名と目的を選択します。「Use case」では「Academic research」「Student」「Non-academic」のいずれかを選びます。趣味で使う場合は「Non-academic」を選んでください。
  3. アプリを作成してAPIキーを生成
    プロジェクト内に新しいアプリを作成します。アプリ名を入力すると、自動的にAPI Key、API Key Secret、Bearer Tokenが生成されます。これらの値をメモしておきます。特にBearer Tokenは後でスクリプトに記述します。
  4. User Authentication(任意)
    今回はBearer Tokenだけで動作するため、User Authenticationの設定は不要です。デフォルトのまま進めて構いません。

Apps Scriptでツイート取得スクリプトを作成する手順

APIキーが手に入ったら、次にスプレッドシートを開いてApps Scriptエディタを起動します。以下の流れでスクリプトを記述します。

  1. スプレッドシートを開く
    新しいスプレッドシートを作成し、メニューから「拡張機能」→「Apps Script」を選択します。エディタが別タブで開きます。
  2. スクリプトを記述
    エディタに以下のコードを貼り付けます。このコードは、指定したキーワードで最近のツイートを検索し、結果をシートに書き込むものです。
    function getTweets() {
      var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
      var bearerToken = 'YOUR_BEARER_TOKEN';
      var query = encodeURIComponent('検索キーワード');
      var url = 'https://api.twitter.com/2/tweets/search/recent?query=' + query + '&max_results=10';
      var options = {
        'method': 'get',
        'headers': {
          'Authorization': 'Bearer ' + bearerToken
        }
      };
      var response = UrlFetchApp.fetch(url, options);
      var json = JSON.parse(response.getContentText());
      var tweets = json.data;
      var rows = [];
      if (tweets) {
        for (var i = 0; i < tweets.length; i++) {
          rows.push([tweets[i].id, tweets[i].text, tweets[i].created_at]);
        }
        sheet.getRange(1, 1, rows.length, 3).setValues(rows);
      }
    }
  3. スクリプトの修正
    コード内の`YOUR_BEARER_TOKEN`を先ほどメモしたBearer Tokenに置き換えてください。また、`query`の'検索キーワード'を実際に検索したい語句に変更します(例:'Googleスプレッドシート')。
  4. 実行してテスト
    エディタ上で`getTweets`関数を選択し、実行ボタンをクリックします。初回は承認が必要です。画面の指示に従って権限を許可してください。実行後、スプレッドシートにツイートのID、テキスト、作成日時が表示されれば成功です。

ADVERTISEMENT

よくあるエラーと対処法

401 Unauthorizedエラーが発生する

Bearer Tokenが正しくないか、期限切れの可能性があります。Developer Portalで新しいTokenを発行し、スクリプトを更新してください。また、トークンの先頭に「Bearer 」のスペースが入っているか確認します。

429 Too Many Requestsエラーが発生する

レート制限に達した場合に発生します。15分待ってから再度実行するか、取得するツイート数を減らしてください(コード内の`max_results`を5などに変更)。

スクリプトが動作しないがエラーが出ない

シートに書き込む前に`console.log(json)`でレスポンス内容を確認してください。APIの仕様変更やクエリパラメータの間違いが原因です。また、検索結果が0件の場合、`json.data`がundefinedになるため、if文でチェックしています。

手動実行と自動更新の違い

項目 手動コピー&ペースト Apps Script + API
手間 毎回ブラウザでツイートを開いてコピペする必要がある スクリプトを一度作ればボタン一つで取得可能
リアルタイム性 リアルタイムに近いが更新が遅れる トリガーを使えば定期的に自動更新できる
データの正確さ 手動ミスが発生する プログラムによるため正確
カスタマイズ性 抽出条件を変えるのが面倒 クエリや取得項目を自由に変更できる

まとめ

この記事では、Twitter/X APIとApps Scriptを使ってスプレッドシートに最新ツイートを自動で取り込む方法を解説しました。APIキーの取得からスクリプトの記述、実行確認までの一連の流れを理解できたはずです。一度スクリプトをセットアップすれば、手動でコピペする手間から解放され、常に最新のツイートをシート上で確認できます。さらに、Apps Scriptのトリガー機能を使って15分おきなどに自動実行する設定も試してみてください。これにより、ダッシュボード的な活用も可能になります。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。