Documentation Index
Fetch the complete documentation index at: https://generaltranslation.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
このチュートリアルでは、プログラミング言語 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 v2 を利用する前に、まず
登録
して開発者アカウントを作成する必要があります。
開発者アカウントが承認されたら、最初に
Project を作成する必要があります。Project を使用すると、X API をどのように利用するかに基づいて作業を整理できるため、API へのアクセスを効率的に管理し、利用状況を監視できます。
各 Project には App が含まれており、X API を利用するために必要な認証情報をそこで生成できます。X API の使い始め方の詳細については、ドキュメント内の
Getting started セクションを参照してください。
まず最初に、R をダウンロードする必要があります。これは
CRAN のサイトから行えます。
その後、R で作業するための環境を整えるには、
RStudio、Visual Studio Code 用の R 拡張パック、
あるいは Python に慣れている場合は
Jupyter notebook
を利用できます。
これから紹介するコード例を実行するために、ベアラートークン用の
環境変数を作成しておく必要があります。ベアラートークンは、X API に対して
認証を行い、リクエストを送信できるようにするためのものです。まず最初に、
“your-bearer-token” をご自身のベアラートークンに置き換えてください。これは、
開発者コンソールの App の「Keys and tokens」セクションから取得できます。
スクリプトを書き始める前に、この 1 行のコードをコンソールで実行しておく必要があります。
Sys.setenv(BEARER_TOKEN = "your-bearer-token")
パッケージ
httr を使用して
X API への HTTP リクエストを送信できます。まだインストールしていない場合は、
コンソールからこのパッケージをインストールしてください。さらに、
JSON オブジェクトを扱うための
jsonlite と、
データ操作用の dplyr の各パッケージもインストールしておく必要があります。
install.packages("httr")
install.packages("jsonlite")
install.packages("dplyr")
API に接続するための R スクリプトの作成を始めましょう。ファイルの先頭で、
httr、jsonlite、dplyr パッケージを読み込みます。
require(httr)
require(jsonlite)
require(dplyr)
コードサンプルの最初のステップは、X API に対する認証の準備を行うことです。
App から取得した
ベアラートークン
を用意し、それを認証用としてヘッダーに渡します。以下の例では、$BEARER_TOKEN を自身のトークンに置き換えてください。
bearer_token <- Sys.getenv("$BEARER_TOKEN")
headers <- c(`Authorization` = sprintf('Bearer %s', bearer_token))
認証の設定が完了したら、リクエストのパラメータを定義します。
デフォルトでは、取得する各ユーザーについて、その id、name、username が返されます。
このペイロードは、追加のフィールドや
expansions を指定することで調整できます。
この例では、user.fields=description を使ってユーザーのプロフィールの自己紹介文を要求し、
さらにユーザーの固定ポストを含めるように expansions を指定します。
params <- list(`user.fields` = 'description', `expansions` = 'pinned_tweet_id')
これで、より詳しい情報を取得したい対象である X のハンドル (アカウント名) を使って URL を組み立てる準備ができました。readline メソッドを使用して、このサンプルを再利用可能にしましょう。調べたいハンドルを入力したら、$USERNAME を目的の X ハンドルに置き換えて、指定したハンドルを含むように URL を構成します。
handle <- readline('$USERNAME')
url_handle <- sprintf('https://api.x.com/2/users/by?usernames=%s', handle)
ここまで来たら、先ほど作成した URL に対して GET リクエストを送るために httr パッケージを使用し、ヘッダーで認証情報を渡し、さらに定義したパラメータも指定します。レスポンスはテキストオブジェクトとして変数 obj に保存し、これを出力することで実行したリクエストの結果を確認できます。
response <-
httr::GET(url = url_handle,
httr::add_headers(.headers = headers),
query = params)
obj <- httr::content(response, as = "text")
print(obj)
JSON を扱ううえでおすすめの方法のひとつは、データフレームを使うことです。データフレームを使うと、複雑にネストされたデータにも簡単にアクセスできます。これを行うには、jsonlite パッケージの fromJSON メソッドを使ってファイルをフラット化し、フィールドが同じオブジェクトとして扱えるようにします。その後、そのオブジェクトをデータフレームに渡します。これで、このデータフレームを確認する準備が整いました。
json_data <- fromJSON(obj, flatten = TRUE) %>% as.data.frame View(json_data)
データフレームからデータのフィールドにアクセスし、それらをハンドル、ユーザー名、自己紹介文を含む文字列として組み立てることができます。
final <-
sprintf(
"Handle: %s\nBio: %s\nPinned Post: %s",
json_data$data.username,
json_data$data.description,
json_data$includes.tweets.text
)
取得している各フィールドごとに改行してオブジェクトを表示するには、print ではなく cat を使用してください。
複数のハンドルに対してリクエストを行っている場合は、ループを使うことで各データフレームの要素に簡単にアクセスできます。
このチュートリアルが、R と X API を使い始めるための出発点となれば幸いです。次のステップとして、最近の検索、ポストのルックアップ、ユーザーのルックアップ向けの R サンプルについて、弊社の
v2 サンプルコード を確認してみてください。途中で問題が発生した場合は
フォーラム からお知らせいただくか、このチュートリアルから着想を得て何かを作成された場合は @XDevelopers へポストしてください。