C'est Abe qui a publié le service à cette époque. Bien que je lui ai donné un titre excessif, je me bats car je ne comprends pas le marketing. Pour le moment, j'ai commencé à utiliser Twitter sur Ruby, je vais donc décrire les connaissances. (Ce n'est que le début et le résultat est inconnu.)
Le fonctionnement de Twitter est gênant. .. Je suis un ingénieur Ruby et non un Twitter (en colère) Existe-t-il un moyen simple de le faire fonctionner? Ceci est un article pour les gens.
L'exemple est écrit en Ruby.
――Comment l'avez-vous automatisé?
Je l'ai automatisé en utilisant Twitter API Rest.
Comme son nom l'indique, il s'agit d'une API fournie par Twitter. En appelant cette API Vous pouvez effectuer un traitement par programme sur Twitter, comme des tweets et des retweets.
Ruby a un bijou qui facilite l'appel de cette API Twitter Rest, Profitons-en. https://github.com/sferik/twitter
Si vous souhaitez connaître le contour et les paramètres de chaque API, veuillez vous référer à la référence ci-dessous. Il est organisé de manière simple à comprendre. https://rdoc.info/gems/twitter/Twitter/REST
Tout d'abord, créez un compte de développeur Twitter. J'ai fait référence à cet article. https://qiita.com/kngsym2018/items/2524d21455aac111cdee
C'est un peu compliqué car je dois vous contacter en anglais, Veuillez surmonter cela avec un esprit.
Implémentons la classe qui crée le client. Le client dispose de chaque méthode qui appelle l'API Twitter. Si vous créez un client et appelez une méthode, Il est possible d'appeler des traitements tels que des tweets et des retweets à partir du programme.
twitter-wrapper.rb
require 'twitter'
class TwitterWrapper
attr_accessor :client
def initialize
@client = Twitter::REST::Client.new do |config|
config.consumer_key = ENV["TWITTER_API_KEY"]
config.consumer_secret = ENV["TWITTER_API_SECRET"]
config.access_token = ENV["TWITTER_ACCESS_TOKEN"]
config.access_token_secret = ENV["TWITTER_ACCESS_TOKEN_SECRET"]
end
end
def tweet(content:, option: {})
@client.update(content, option)
end
def tweet_with_media(content:, images: , option: {})
@client.update_with_media(content, images, option)
end
def retweets(tweet_id: nil)
@client.retweet(tweet_id)
end
end
Cette fois, j'ai placé les paramètres dans config / twitter.yml, mais veuillez le placer où vous le souhaitez. Lorsque vous New Twitter :: REST :: Client, il n'y a aucun problème si vous pouvez entrer chaque valeur correctement. twitter-wrapper.rb ne décrit que la méthode expliquée cette fois, Il existe de nombreuses autres méthodes, il serait donc intéressant de les vérifier dans Documentation.
Je fais les opérations suivantes.
--Tweet lorsque le contenu est publié --Retweetez vos tweets à intervalles réguliers
Lorsque le contenu est publié, nous appelons tweet. J'exécute juste la méthode wrap update_with_media (tweet_with_media) qui appelle l'API Tweet. Cette fois, je voulais tweeter l'image ensemble, donc j'utilise update_with_media. Si vous n'avez pas besoin de l'image, vous pouvez utiliser la méthode de mise à jour.
tweet.rb
class Tweet < Twitters::Application
def tweet(content)
tweet_wrapper = TwitterWrapper.new
content = content #Contenu du Tweet
images =【image】# Array<File>
tweet_wrapper.tweet_wrapper.tweet_with_media(content: content, images: images)
end
end
Le processus suivant est appelé par cron. Cependant, si vous essayez de retweeter un tweet que vous avez déjà retweeté, vous obtiendrez une erreur. Je pense que c'est plus gentil d'ajouter du traitement.
retweet.rb
tweet_wrapper = TwitterWrapper.new
tweet_wrapper.search('nom du compte').each do |tweet|
user_name = tweet.user.screen_name
return false if !user_name.include?('nom du compte')
tweet_wrapper.retweets(tweet_id: tweet_id)
end
Ce qui précède est la façon dont j'y ai pensé, donc je pense qu'il peut être raffiné. Si vous avez cette façon d'écrire, je vous serais reconnaissant de bien vouloir commenter!
Bonne vie sur Twitter!