取得したTwitterのOAuthを利用して、自分のタイムラインやキーワードの検索結果を取得する実行コマンドを紹介します。DTパッケージを利用していますのでユーザーやつぶやきも簡単に確認することができます。
TwitterのOAuth取得は下記の記事を確認してください
・Rで解析:TwitterのOAuthを取得するコマンド例
https://www.karada-good.net/analyticsr/r-331/
実行コマンドはR version 3.2.2で確認しています。
実行コマンド
詳細はコメント、コマンドのヘルプを確認してください。日本語の検索キーワードはエラーが出ます。解決策をご存知の方、教えて下さい。
#作成したTwitterOAuthオブジェクトの読み込み
library("tcltk")
load(paste(as.character(tkgetOpenFile(title = "TwitterOAuthオブジェクトを選択",
filetypes = '{"TwitterOAuthオブジェクト" {"*.Oauth"}}',
initialfile = "TwitterOAuth.Oauth")), sep = "", collapse =""))
#httrライブラリの読み込み
library("httr")
#自分のタイムラインを取得
#取得数を設定
GetCount <- 50
req <- GET(paste0("https://api.twitter.com/1.1/statuses/home_timeline.json?count=", GetCount),
config(token = MyOauth))
data <- content(req)
#データを整形
#リンクURLの取得
LinkURL <- NULL
for(i in seq(data)){
getURL <- data[[i]]$entities$urls
if(length(getURL) == 0){
LinkURL <- c(LinkURL, "-")
}else{
LinkURL <- c(LinkURL, getURL[[1]]$expanded_url)
}
}
#ツイート内容の取得
TweetText <- sapply(data, "[[", "text")
#リツイート数の取得
ReTweetCount <- sapply(data, "[[", "retweet_count")
#いいね数の取得
FavoriteCount <- sapply(data, "[[", "favorite_count")
#データをデータフレーム化
GetMyTweetInfo <- data.frame(LinkURL, TweetText, ReTweetCount, FavoriteCount)
#データをDTパッケージでHTMLに出力
library("DT")
#ツイート内容にハイパーリンクを付与
GetMyTweetInfo[, 2] <- paste0('<a href=', GetMyTweetInfo[, 1], ' target="_blank">', GetMyTweetInfo[, 2], '</a>')
#1列めを削除
GetMyTweetInfo <- GetMyTweetInfo[, -1]
#テーブルの作成
datatable(GetMyTweetInfo, rownames = FALSE, escape = FALSE, extensions = 'TableTools',
filter = 'top', options = list(pageLength = 15, autoWidth = TRUE))
###twitterを検索#####
#検索項目を指定
query <- "karada-good.net"
#取得数を設定
GetCount <- 50
req <- GET(paste0("https://api.twitter.com/1.1/search/tweets.json?q=", query, "&count=", GetCount),
config(token = MyOauth))
TimeData <- content(req)
#リンクURLの取得
LinkURL <- NULL
for(i in seq(TimeData$statuses)){
getURL <- TimeData$statuses[[i]]$entities$urls[[1]]$expanded_url
if(length(getURL) == 0){
LinkURL <- c(LinkURL, "-")
}else{
LinkURL <- c(LinkURL, getURL)
}
}
#ユーザーネームの取得
UserName <- NULL
for(i in seq(TimeData$statuses)){
UserName <- c(UserName, TimeData$statuses[[i]]$user$name)
}
#スクリーンネームの取得
ScreenName <- NULL
for(i in seq(TimeData$statuses)){
ScreenName <- c(ScreenName, TimeData$statuses[[i]]$user$screen_name)
}
#ツイート内容の取得
TweetText <- NULL
for(i in seq(TimeData$statuses)){
TweetText <- c(TweetText, TimeData$statuses[[i]]$text)
}
#リツイート数の取得
ReTweetCount <- NULL
for(i in seq(TimeData$statuses)){
ReTweetCount <- c(ReTweetCount, TimeData$statuses[[i]]$retweet_count)
}
#いいね数の取得
FavoriteCount <- NULL
for(i in seq(TimeData$statuses)){
FavoriteCount <- c(FavoriteCount, TimeData$statuses[[i]]$favorite_count)
}
#データをデータフレーム化
GetMyTimeLine <- data.frame(LinkURL, ScreenName, UserName, TweetText, ReTweetCount, FavoriteCount)
#データをDTパッケージでHTMLに出力
library("DT")
#ツイート内容にハイパーリンクを付与
GetMyTimeLine[, 4] <- paste0('<a href=', GetMyTimeLine[, 1], ' target="_blank">', GetMyTimeLine[, 4], '</a>')
#スクリーンネームからユーザーページのハイパーリンクを作成
GetMyTimeLine[, 3] <- paste0('<a href=https://twitter.com/', GetMyTimeLine[, 2], ' target="_blank">', GetMyTimeLine[, 3], '</a>')
#1,2列めを削除
GetMyTimeLine <- GetMyTimeLine[, c(-1, -2)]
#テーブルの作成
datatable(GetMyTimeLine, rownames = FALSE, escape = FALSE, extensions = 'TableTools',
filter = 'top', options = list(pageLength = 15, autoWidth = TRUE))
[/code]
出力結果
・自分のタイムラインを取得
見にくい場合はこちら
https://www.karada-good.net/wp/wp-content/uploads/2015/11/GetMyTweetInfo.html
・karada-good.netの検索結果
見にくい場合はこちら
https://www.karada-good.net/wp/wp-content/uploads/2015/11/GetMyTimeLine.html
少しでも、あなたのウェブや実験の解析が楽になりますように!!