1
0

More than 3 years have passed since last update.

【Rails】Twitterのリストのメンバー全員を取得したい

Last updated at Posted at 2019-12-12

概要

Twitter廃人です。
2019-12-12、PCでのリスト閲覧が出来なくなっており、俺のツイッターライフが滅亡の危機に瀕しています。
スマホでは出来るけどなんで……。

Twitterくん頑張ってるけど、ふとしたことでリスト機能自体を消しちゃったりしそう……?
そうでなくてもアカウント永久凍結されたりしたら本気でヤバいなと思い、リストのメンバーを取得しておきたいと思います。

追記

リスト見れない問題、解決しました。
https://qiita.com/MATO/items/8af58e6db5bb3df60a84

環境

Ruby2.5.3
Rails5.2.1

前提

TwitterAPI使えるようにするまでとかは他記事でお願いします。

gemで'twitter'を追加してbundle installするだけで良かった気がする。
他にもやった気もする。

忘れました

Model

app/model/tweet.rb

class Tweet < ApplicationRecord

  # --- Twitter API ---

  # APIに接続するためのクライアント生成
  def self.get_client
    client = Twitter::REST::Client.new do |config|
      # applicationの設定
      config.consumer_key           = Settings.consumer_key
      config.consumer_secret        = Settings.consumer_secret

      # ユーザー情報の設定
      config.access_token           = Settings.access_token
      config.access_token_secret    = Settings.at_secret
    end

    return client
  end

end

共通設定ファイル

使うために何入れたかは忘れました……。

config/settings.local.yml
# Twitter OAtuh Setting
consumer_key:     "NAISYODAYODAYO"
consumer_secret:  "NAISYODAYODAYO"

access_token:     "NAISYODAYODAYO-NAISYODAYODAYO"
at_secret:        "NAISYODAYODAYO"

Console

rails cで入るやつ

> c = Tweet.get_client

> c.lists.each { |list| p list.slug }

必要なのはリストのslug……とのことですが、リスト名そのままでいいかも。
けど一応取っておいた方が良さそう。

> c.list_members('screen_name','お気に入り').each { |member| 
> p member.id.to_s + "," + member.screen_name.to_s + "," + member.name.to_s 
> }

まとめ

これでtwitter_id,screen_name,nameのCSVデータっぽいの取れますね。
screen_name(@なんとか)は変えられるので、一応twitter_id取っておいた方が良いと思います。

アカウントが何度死んでも、俺はお前らを逃さねぇからな……❤

注意点

APIの回数制限ありますが、だいたい15分ごとの制限です。
なので「多すぎ!」で怒られても、しばらく待つだけで使えると思います。

終わり

参考にさせて頂いたサイト

twitter-rubyのGit

メソッド一覧

Twitter公式のやつ見てもメソッド名違うから超助かりました。
他のことしたくてもこれ見れば良さそう

REST-APIの解説

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0