Ruby - Twitter API でリスト登録済みユーザ取得!
Updated:
昨日は、Ruby で Twitter API を使用して自分が作成したリストの取得する方法について紹介しました。
今日は、Ruby + Twitter API で指定のリストに登録されているユーザの一覧を取得する方法についてです。
0. 前提条件
- Ruby 1.9.3-p327 で作成・動作確認。
- RubyGems twitter を導入済み。
- OAuth 認証のための Customer Key, Customer Secret, Access Token, Access Token Secret を取得済み。
OAuth 認証については、今回は説明しません。当ブログ過去記事やネット等でお調べください。
1. Ruby スクリプト作成
作成した Ruby スクリプトは以下の通り。
このスクリプトでは、list_id
を指定して、そのリストに登録済みのユーザのユーザIDを取得している。
引数や取得できる項目等については Twitter API のサイト等で確認できます。
File: twitter_get_list_members.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# -*- coding: utf-8 -*-
require 'twitter'
require 'oauth'
require 'time'
# Twitter UserName
USER_NAME = "foo"
# Consumer key, Secret の設定
CONSUMER_KEY = "XXXXXXXXXXXXXXXXXXXX"
CONSUMER_SECRET = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
# Access Token Key, Secret の設定
ACCESS_TOKEN_KEY = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
ACCESS_SECRET = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
# メインクラス
class TwitterGetListMembers
def initialize
@ary_lists = [111111, 222222, 333333] # 調べたいリストのID
@count = 0 # 件数カウント用
end
# ユーザ取得
def get_members
begin
# Twitter.configure 設定
Twitter.configure do |config|
config.consumer_key = CONSUMER_KEY
config.consumer_secret = CONSUMER_SECRET
config.oauth_token = ACCESS_TOKEN_KEY
config.oauth_token_secret = ACCESS_SECRET
end
client = Twitter::Client.new
@ary_lists.each do |list_id|
res = client.list_members(:list_id => list_id)
res.each do |member|
user_id = member[:id]
puts "[#{list_id}] #{user_id}"
end
end
rescue => e
str_msg = "[EXCEPTION][" + self.class.name + ".get_members] " + e.to_s
STDERR.puts str_msg
exit 1
end
end
end
################
#### MAIN ####
################
begin
puts "STARTED!!"
puts "-" * 40
# 処理クラスインスタンス化
obj_main = TwitterGetListMembers.new
# 登録ユーザ取得
obj_main.get_members
puts "-" * 40
puts "FINISHED!"
rescue => e
str_msg = "[EXCEPTION]" + e.to_s
STDERR.puts str_msg
exit 1
end
2. Ruby スクリプト実行
以下のようにして Ruby スクリプトを実行する。
$ ruby twitter_get_list_members.rb
3. 参考サイト
-
[REST API v1.1 Resources Twitter Developers](https://dev.twitter.com/docs/api/1.1 “REST API v1.1 Resources Twitter Developers”)
これで、リストに登録済みのユーザ一覧が取得できました。
当方は、実際には、取得したデータをデータベース(MySQL)に保存したり(1日1回定時起動)して、別途作成した Rails アプリで閲覧・管理しています。
ちなみに、自分以外のユーザのリストIDを指定してユーザ一覧が取得できるかどうか、非公開のリストは取得できるのか、等は確認していません。
以上。
Comments