はじめに
Twitter APIを使用すると、ユーザーが投稿した公開ツイートのタイムラインの取得や参照ができます。ユーザーのツイートを参照するには、最新の検索を使用して過去7日間のツイートを取得します。
このガイドでは、以下の項目について説明します。
- 作業の目的を設定する
- Twitter APIに接続して認証する
- データを調整する
- 追加のロジックを構築したり、使用している他のAPIに接続したりする
前提条件
- 承認済み開発者アカウントを用意し、新しい開発者ポータルエクスペリエンスをアクティブにしておく必要があります。アクセスには、開発者ポータルで作成されたプロジェクトにアタッチされた開発者アプリのアクティブキーとトークンを使用します。
Twitter開発者ポータルのアプリのベアラートークン。
考慮すべき手順
手順1:作業の目的を設定する
ユーザーのツイートを参照する場合は、何を達成したいかを正確に把握するための時間を設けてください。
- ワークフロートリガーの作成:ユーザーが「x」とツイートしたら、そこから「y」を行います(たとえば、ユーザー名TwitterDevが「重要な変更」という単語をツイートしたら、作業アカウントにメールを受信して重要な変更の内容を把握できるようにします)。
- ツイートセンチメントの実行:タイムラインでツイートセンチメントなどのタスクを実行することで、自身のツイートを分析し、1週間がどれだけポジティブであったかを確認できます。
手順2:Twitter APIに接続して認証する
Twitter APIに接続するには、データを取得する前に認証情報を渡して認証を受ける必要があります。このタイミングで、ライブラリを使用してPythonのRequestsやRubyのhttpartyをOAuthで処理できるようにすることを検討してください。また、安全に認証情報を保管する方法も考慮してください。環境変数を使用したり、GitHub上の.gitignoreファイルに保存できる構成ファイルを設定したりするなどの選択肢があります。
Twitterドキュメントの認証セクションを必ず確認してください。認証情報を紛失したか、侵害された可能性がある場合は、対象のキーとトークンのセクションにあるアプリに移動していつでも再生成できます。セキュリティのベストプラクティスについての詳細はこちらも参照できます。
手順3:データを調整する
必要なツイートを適切に取得するためにクエリを調整する必要があります。たとえば、TwitterDevの例では、GETリクエストを行うエンドポイントが以下のようになっていることを確認してください。
https://api.x.com/2/tweets/search/recent?query=from:TwitterDev
この時点で最新コードのサンプルコードを確認してみてください。
対象のユーザー名に合わせてこれを調整するには、TwitterDevの部分を別のものに変更します。画像や指定したハッシュタグがあるツイートだけを含めるようにクエリを調整することもできます。クエリの作成方法の詳細はこちらを参照してください。全体を眺め、取得する必要がないツイートを把握することが多くのケースで役立ちます。そうすることで、不必要なツイートを除外する適切なロジックをクエリに含めることができます。
取得するツイート数、および検索するデータがあるフィールドについても検討してください。デフォルトでは、各ツイートのIDとテキストが取得されます。クエリにフィールドと拡張を追加することで、このペイロードを調整できます。
想定しているタスクを実行するために必要なツイート数についても考慮してください。最初の10件のツイートはdata
というオブジェクトにあります。さらにツイートを取得するには、ページネーションを処理する必要があります。そのためには、metaというオブジェクトからnext_token
にアクセスして接続し、使用できるnext_token
がなくなるまで、次の10件のツイート分について追加のツイートオブジェクトを取得する必要があります。一部のライブラリとサードパーティツールにはページネーションが組み込まれている場合があります。
データ調整プロセスでは、目的に合うペイロードが返されるまでクエリを繰り返し調整する必要がある場合があります。PostmanやInsomniaなどのRESTクライアントを使用すると、コードの記述を開始する前に、返されるデータを確認して調整を行うのに役立つ場合があります。TwitterのPostmanコレクションも役立つかもしれません。
手順4:追加のロジックを構築したり、使用している他のAPIに接続したりする
検索対象を正確に含むペイロードが用意できたら、目的としたタスクを実行するのに必要なロジック、タイミング、またはAPI接続がコードに組み込まれていることを確認できます。
TwitterDevが「重要」と「変更」という単語をツイートした場合のワークフロートリガーを作成する例では、これら2つの単語がツイートテキストに含まれているかどうかを確認し、これら2つの単語が現れたら、APIかライブラリに接続して、ツイートテキストを含むメールを作業アカウントに送信する必要があります。Cron JobやAWS Lambdaなどを使用して、この操作を定期的に実行する時間も設定する必要があります。この例では、1週間ごとにこの操作を実行して、過去1週間にこれら2つの単語を含むツイートがあったかどうかを確認します。ユーザー名@NYCASPによる同じツイートに「凍結」と「明日」という単語があるかどうかを確認してテキストを送信する、類似のコードサンプルを用意しています。
過去1週間のツイートに対してセンチメント分析を実行するサンプルでは、TensorFlowなどのライブラリを使用したり、センチメント分析APIに接続したりするためのロジックを独自に作成する必要があります。作成後、過去1週間のツイートセンチメントのデータを視覚化して、1週間がどれだけポジティブであったかを確認します。このサンプルの作成手順を詳細に紹介したブログ投稿を参照するか、コードをご覧いただけます。
次の手順
- 最新の検索エンドポイントについて詳細を確認する。
- クイックスタートガイドを使用して構築を開始する。
- APIリファレンスを確認して、利用可能なものを調べる。
- 検索クエリの構築について詳細を確認する。
- 他のチュートリアルを読んでアイデアを得る。