Skip to main content

はじめに

このチュートリアルでは、プログラミング言語 R と X API v2 を使い始めるために必要なことを順を追って説明します。R を使って user lookup エンドポイントに接続し、X API から返される JSON をどのように扱うかを紹介します。User lookup は GET メソッドで、ユーザー ID または ユーザー名で指定された 1 人または複数のユーザーに関する情報を返します。 R に馴染みがない場合、R は時系列解析、モデリング、可視化、そのほかのデータ分析といった一般的なデータサイエンスのタスクに広く用いられる代表的な言語の 1 つであり、X API と組み合わせて利用されることもよくあります。user lookup エンドポイントを使用すると、 user object を利用して、 ある人が持つフォロワー数と、その人の自己紹介文 (bio) のセンチメントスコアとの相関関係を調べることができます。user object はまた、プロフィールに公開されている所在地情報に基づいてアカウントのグループをマッピングするためにも使用できます。

X API を使い始める

X API v2 を利用する前に、まず 登録 して開発者アカウントを作成する必要があります。 開発者アカウントが承認されたら、最初に Project を作成する必要があります。Project を使用すると、X API をどのように利用するかに基づいて作業を整理できるため、API へのアクセスを効率的に管理し、利用状況を監視できます。 各 Project には App が含まれており、X API を利用するために必要な認証情報をそこで生成できます。X API の使い始め方の詳細については、ドキュメント内の Getting started セクションを参照してください。

R 環境のセットアップ

まず最初に、R をダウンロードする必要があります。これは CRAN のサイトから行えます。 その後、R で作業するための環境を整えるには、 RStudioVisual Studio Code 用の R 拡張パック、 あるいは Python に慣れている場合は Jupyter notebook を利用できます。

環境変数の設定

これから紹介するコード例を実行するために、ベアラートークン用の 環境変数を作成しておく必要があります。ベアラートークンは、X API に対して 認証を行い、リクエストを送信できるようにするためのものです。まず最初に、 “your-bearer-token” をご自身のベアラートークンに置き換えてください。これは、 開発者コンソールの App の「Keys and tokens」セクションから取得できます。 スクリプトを書き始める前に、この 1 行のコードをコンソールで実行しておく必要があります。

リクエストの送信

パッケージ httr を使用して X API への HTTP リクエストを送信できます。まだインストールしていない場合は、 コンソールからこのパッケージをインストールしてください。さらに、 JSON オブジェクトを扱うための jsonlite と、 データ操作用の dplyr の各パッケージもインストールしておく必要があります。
API に接続するための R スクリプトの作成を始めましょう。ファイルの先頭で、 httr、jsonlite、dplyr パッケージを読み込みます。
コードサンプルの最初のステップは、X API に対する認証の準備を行うことです。 App から取得した ベアラートークン を用意し、それを認証用としてヘッダーに渡します。以下の例では、$BEARER_TOKEN を自身のトークンに置き換えてください。
認証の設定が完了したら、リクエストのパラメータを定義します。 デフォルトでは、取得する各ユーザーについて、その id、name、username が返されます。 このペイロードは、追加のフィールドexpansions を指定することで調整できます。 この例では、user.fields=description を使ってユーザーのプロフィールの自己紹介文を要求し、 さらにユーザーの固定ポストを含めるように expansions を指定します。
これで、より詳しい情報を取得したい対象である X のハンドル (アカウント名) を使って URL を組み立てる準備ができました。readline メソッドを使用して、このサンプルを再利用可能にしましょう。調べたいハンドルを入力したら、$USERNAME を目的の X ハンドルに置き換えて、指定したハンドルを含むように URL を構成します。
ここまで来たら、先ほど作成した URL に対して GET リクエストを送るために httr パッケージを使用し、ヘッダーで認証情報を渡し、さらに定義したパラメータも指定します。レスポンスはテキストオブジェクトとして変数 obj に保存し、これを出力することで実行したリクエストの結果を確認できます。

JSON ペイロードの扱い方

JSON を扱ううえでおすすめの方法のひとつは、データフレームを使うことです。データフレームを使うと、複雑にネストされたデータにも簡単にアクセスできます。これを行うには、jsonlite パッケージの fromJSON メソッドを使ってファイルをフラット化し、フィールドが同じオブジェクトとして扱えるようにします。その後、そのオブジェクトをデータフレームに渡します。これで、このデータフレームを確認する準備が整いました。
データフレームからデータのフィールドにアクセスし、それらをハンドル、ユーザー名、自己紹介文を含む文字列として組み立てることができます。
取得している各フィールドごとに改行してオブジェクトを表示するには、print ではなく cat を使用してください。
複数のハンドルに対してリクエストを行っている場合は、ループを使うことで各データフレームの要素に簡単にアクセスできます。

結論

このチュートリアルが、R と X API を使い始めるための出発点となれば幸いです。次のステップとして、最近の検索、ポストのルックアップ、ユーザーのルックアップ向けの R サンプルについて、弊社の v2 サンプルコード を確認してみてください。途中で問題が発生した場合は フォーラム からお知らせいただくか、このチュートリアルから着想を得て何かを作成された場合は @XDevelopers へポストしてください。