我想编写一个应用程序,该应用程序可以从Twitter提取推文并将其发送到话语主题中。 所以我需要什么:
自日期时间起具有弹性的方法。 在适当的时间范围内从Twitter提取推文的方法 一种将推文发送到选定话语主题的方法 一种检查是否在主题之前发布过Tweets(或Tweeturl)的方法,以避免每次都获得相同的Tweets 每10秒或类似时间(可能是sidekiq)自动运行脚本的可能性
我已经得到的:
require 'bundler/setup'
require 'net/http'
require 'uri'
require 'twitter'
module GetTweet
class Error < StandardError
end
def self.date
date = Time.new
#set 'date' equal to the current date/time.
date = date.year.to_s + "-" + date.month.to_s + "-" + (date.day - 1).to_s
#Without this it will output 2015-01-10 11:33:05 +0000; this formats it to display DD/MM/YYYY
end
$tweeturls = Array.new
def self.catch_tweets
client = Twitter::REST::Client.new do |config|
config.consumer_key = "KAKAKAKAKAKAKAA"
config.consumer_secret = "jKAKAKAKAKAKAKAA"
config.access_token = "9KAKAKAKAKAKAKAA"
config.access_token_secret = "KAKAKAKAKAKAKAA"
end
# getting all tweets in a hashmap with "mention" without retweet in option timeframe
tweets = client.search("Bastiilange -rt", since: "#{date}", until: "2018-11-15")
# put the hashmap into an sorted array
sorted_tweets = tweets.sort_by {|tweet| tweet.created_at}
# give me every uniq tweet
sorted_tweets.uniq.each do |tweet|
tweet = tweet.url
if $tweeturls.include?(tweet)
else
$tweeturls.push(tweet)
end
end
end
catch_tweets
puts $tweeturls
end
因此,tweeturls应该是所有保存在其中的tweet url的数组 似乎工作正常!
require 'net/http'
require 'uri'
require_relative 'get_tweet'
INSTANCE_URL = 'XXXXX'
API_USERNAME = 'XXXX'
API_KEY = 'XXXX'
def self.send_request
def self.tweet_url
$tweeturls.each do |tweet|
@tweet = tweet.
end
end
url = URI.parse(INSTANCE_URL)
request = Net::HTTP::Post.new(url.path)
request.set_form_data({'api_username' => API_USERNAME, 'api_key' => API_KEY, 'title' => "Neuer Post", 'topic_id' => 8, 'raw' => "#{tweet_url}"})
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
response = http.request(request)
puts response.code
end
send_request
那也行得通,好的,我猜。目前,通过调用该方法,我不仅获得了tweet的URL,这很不幸,但我认为是可修复的。我最大的担心是,我必须使脚本自动化(以后将是一个插件),并确保其不会一次又一次地获得时间表中的旧推文。我可以制作一个类似Time.now的东西-但是我认为TwitterApi不能准确地确定它是否可以正确工作吗?或者,我创建了第三个方法来获取来自话题主题的所有帖子,并比较数组并将它们合并为唯一的数组。但由于很多原因,我很确定这不是一个明智的解决方案。 我很想听听我如何可以做得更好的建议!