何度も申し訳ございません。
Twitterのホームのタイムラインを自動で回して、特定のキーワードが見つかった時にメールで送信するシステムを作りたいと考えています。
URLなどを参考にしたのですが、下記が実現しえずエラーが発生します。
・ホームのタイムライン上から検索(Twitter全部でなくタイムライン上とフィルターをかけたい)
・特定キーワードが出た時の取得
エラー
Ruby
1`on_headers_complete': Twitter::Error::NotAcceptable
ソースコード
Ruby
1require 'twitter' 2 3@client = Twitter::Streaming::Client.new do |config| 4 config.consumer_key = "XXXXXXXXXXXX" 5 config.consumer_secret = "XXXXXXXXXXXX" 6 config.access_token = "XXXXXXXXXXXX" 7 config.access_token_secret = "XXXXXXXXXXXX" 8end 9 10keywords = "日本, 東京, Japan, Tokyo" 11options = { 12 :lang => 'en', 13 :track => keywords, 14 :follow => 'アカウント名' 15} 16 17@client.filter(options) do |object| 18 19 if object.is_a?(Twitter::Tweet) 20 printf "%s / %s\n %s\n\n", 21 object.user.screen_name, 22 object.user.name, 23 object.text.gsub("\n", "\n ") 24 end 25end
ソースコード(12月25日追記)
RESTでホームのタイムラインを取得しつつ、STREAMINGで取ってくる作戦をやってみたのですが、どうも動きません・・・汗
require 'twitter' @client = Twitter::Streaming::Client.new do |config| config.consumer_key = "XXXXXXXXXXXX" config.consumer_secret = "XXXXXXXXXXXX" config.access_token = "XXXXXXXXXXXX" config.access_token_secret = "XXXXXXXXXXXX" end @client_rest = Twitter::REST::Client.new do |config| config.consumer_key = "XXXXXXXXXXXX" config.consumer_secret = "XXXXXXXXXXXX" config.access_token = "XXXXXXXXXXXX" config.access_token_secret = "XXXXXXXXXXXX" end keywords = ["キーワード"] users = ["アカウント名"] @client_rest.home_timeline do @client.filter(track: keywords.join(",")) do |object| if object.is_a?(Twitter::Tweet) printf "%s / %s\n %s\n\n", object.user.screen_name, object.user.name, object.text.gsub("\n", "\n ") end end end
ターミナル上では動いている気配がありません。。
アカウント名のホームタイムラインにフィルタリングしたいのですが、できずに困っています。。汗
参考にしたリンク
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/22 07:52
2017/12/22 08:14
2017/12/24 03:10