Skip to main content

はじめに

このチュートリアルでは、プログラミング言語 R と X API v2 を使い始めるために必要な内容を解説します。R から user lookup エンドポイントに接続し、X API から返される JSON をどう扱うかを示します。user lookup は GET メソッドで、ユーザー ID またはユーザー名で指定した個々のユーザー、または複数ユーザーに関する情報を返します。 R は、時系列分析、モデリング、可視化、その他のデータ分析といった一般的なデータサイエンス業務で最も人気のある言語の 1 つで、X API と組み合わせて使われることも多くあります。user lookup エンドポイントを使用すると、user オブジェクトを使って、ある人のフォロワー数と bio のセンチメントスコアの相関を調べることができます。また user オブジェクトは、プロフィールに公開されている位置情報に基づいて、あるアカウント群をマッピングする用途にも使えます。

X API を使い始める

X API v2 を利用する前に、デベロッパーアカウントにサインアップする必要があります。 デベロッパーアカウントが承認されたら、まず Project を作成する必要があります。Project を使うと、X API をどのように使う予定かに基づいて作業を整理でき、API へのアクセスを効果的に管理し、利用状況を監視できます。 各 Project にはアプリが含まれており、X API の利用に必要な資格情報を生成できます。X API を使い始める方法の詳細は、ドキュメントのはじめにセクションをご覧ください。

R 環境をセットアップする

まず、cran のウェブサイトから R をダウンロードします。 その後、R で作業する環境をセットアップするには、R studioVisual Studio Code の R 拡張パック、または Python の世界から来た方であれば Jupyter notebook を利用できます。

環境変数の設定

今回紹介するコード例のために、Bearer Token 用の環境変数を作成しておくとよいでしょう。Bearer Token は、X API へ認証してリクエストを開始できるようにするものです。まず、「your-bearer-token」をご自身の Bearer Token(Developer Console のアプリの keys and tokens セクションから取得できます)に置き換えてください。スクリプトを書き始める前に、次のコード行をコンソールで実行する必要があります。

リクエストを行う

X API への HTTP リクエストを行うには、httr パッケージを使用できます。まだインストールしていない場合は、コンソールでこのパッケージをインストールしてください。JSON オブジェクトを扱う jsonlite と、データ操作用の dplyr もインストールする必要があります。
これで R スクリプトを書き始めて API に接続できます。ファイル上部で httr、jsonlite、dplyr の各パッケージを読み込みます。
コード例の最初のステップは、X API に対する認証をセットアップすることです。アプリから取得した Bearer Token を取り、認証用のヘッダーに渡します。以下の例では、$BEARER_TOKEN をご自身のトークンに置き換えてください。
認証のセットアップが完了したら、リクエストのパラメーターを定義します。デフォルトでは、返される各ユーザーの id、name、username が取得できます。追加のフィールドexpansionsを追加することで、このペイロードを調整できます。この例では、ユーザーのプロフィール bio を取得したいので user.fields=description をリクエストし、ユーザーの固定投稿を含む expansion も取得します。
これで、より詳しい情報を取得したい X ハンドル(アカウント)を含む URL をフォーマットする準備ができました。このサンプルを再利用可能にするため readline メソッドを使用します。参照したいハンドルを入力した後、$USERNAME を対象の X ハンドルに置き換えて URL をフォーマットします。
ここで、httr パッケージを使用して、先ほど作成した URL に GET リクエストを行い、ヘッダーで認証資格情報を渡し、定義したパラメーターも渡します。レスポンスをテキストオブジェクトとして変数 obj に保存し、これを出力してリクエスト結果を確認できます。

JSON ペイロードを扱う

JSON を扱う私のお気に入りの方法の 1 つはデータフレームを使うことで、複雑なネストしたデータに簡単にアクセスできます。そのために、jsonlite パッケージの fromJSON メソッドを使用してファイルをフラット化し、フィールドを同じオブジェクト内に配置します。その後、そのオブジェクトをデータフレームに渡します。これでこのデータフレームを表示する準備ができました。
データフレームからデータのフィールドにアクセスし、ハンドル、ユーザー名、bio を含む文字列に渡すことができます。
各フィールドの間に改行を入れてオブジェクトを表示するには、print の代わりに cat を使用します。
複数のハンドルに対してリクエストを行った場合は、ループを使って各データフレーム要素に簡単にアクセスできます。

結論

このチュートリアルが、R と X API を使い始めるためのスタート地点になれば幸いです。次のステップとして、v2 sample code にある recent search、Post lookup、user lookup の R サンプルを確認するとよいでしょう。何かトラブルが発生したらフォーラムにお知らせいただくか、このチュートリアルをきっかけに何かを作ったら @XDevelopers までお知らせください。