[RUBY] Twitter Marketing? Was ist, wenn ich es automatisiere?

Es ist Abe, der den Dienst um diese Zeit freigegeben hat. Obwohl ich ihm einen übermäßigen Titel gegeben habe, habe ich Probleme, weil ich Marketing nicht verstehe. Vorerst habe ich angefangen, Twitter auf Ruby zu verwenden, daher werde ich das Wissen beschreiben. (Es hat gerade erst begonnen und das Ergebnis ist unbekannt.)

Der Betrieb von Twitter ist problematisch. .. Ich bin ein Ruby-Ingenieur und kein Twitterer (wütend) Gibt es eine einfache Möglichkeit, es zu bedienen? Dies ist ein Artikel für Menschen.

Das Beispiel ist in Ruby geschrieben.

Agenda

――Wie haben Sie das automatisiert? --Was ist die Twitter Rest API?

Wie haben Sie es automatisiert?

Ich habe Twitter Rest API verwendet, um es zu automatisieren.

Was ist die Twitter Rest API?

Wie der Name schon sagt, handelt es sich um eine von Twitter bereitgestellte API. Durch Aufrufen dieser API Sie können die Verarbeitung auf Twitter programmgesteuert durchführen, z. B. Tweets und Retweets.

Ruby hat ein Juwel, das es einfach macht, diese Twitter Rest API aufzurufen. Lassen Sie uns das ausnutzen. https://github.com/sferik/twitter

Wenn Sie die Gliederung und Parameter jeder API kennen möchten, lesen Sie bitte die folgende Referenz. Es ist leicht verständlich organisiert. https://rdoc.info/gems/twitter/Twitter/REST

So installieren Sie die Twitter REST API

Ein Konto erstellen

Erstellen Sie zunächst ein Twitter-Entwicklerkonto. Ich habe auf diesen Artikel verwiesen. https://qiita.com/kngsym2018/items/2524d21455aac111cdee

Es ist ein bisschen mühsam, weil ich Sie auf Englisch kontaktieren muss, Bitte überwinde es mit einem Geist.

Implementierung

Implementieren wir die Klasse, die den Client erstellt. Der Client verfügt über jede Methode, die die Twitter-API aufruft. Wenn Sie einen Client erstellen und eine Methode aufrufen, Es ist möglich, die Verarbeitung wie Tweets und Retweets aus dem Programm aufzurufen.

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

Dieses Mal habe ich die Einstellungen in config / twitter.yml platziert, aber bitte platzieren Sie sie, wo immer Sie möchten. Wenn Sie New Twitter :: REST :: Client verwenden, ist es kein Problem, wenn Sie jeden Wert korrekt eingeben können. twitter-wrapper.rb beschreibt nur die diesmal erläuterte Methode. Es gibt viele andere Methoden, daher wäre es interessant, sie in Dokumentation zu überprüfen.

Welche Art von Operation wird tatsächlich durchgeführt?

Ich mache die folgenden Operationen.

Tweet, wenn der Inhalt veröffentlicht wird

Wenn der Inhalt veröffentlicht wird, rufen wir Tweet an. Ich führe nur die Wrap-Methode update_with_media (tweet_with_media) aus, die die Tweet-API aufruft. Dieses Mal wollte ich das Bild zusammen twittern, also verwende ich update_with_media. Wenn Sie das Image nicht benötigen, können Sie die Aktualisierungsmethode verwenden.

tweet.rb


  class Tweet < Twitters::Application
    def tweet(content)
      tweet_wrapper = TwitterWrapper.new
      content = content #Tweet Inhalt
      images  =【Bild】# Array<File>
      tweet_wrapper.tweet_wrapper.tweet_with_media(content: content, images: images)
    end
  end

Retweeten Sie sich in regelmäßigen Abständen

Der folgende Prozess wird von cron aufgerufen. Wenn Sie jedoch versuchen, einen bereits retweeteten Tweet zu retweeten, wird eine Fehlermeldung angezeigt. Ich denke, es ist freundlicher, etwas Verarbeitung hinzuzufügen.

retweet.rb


tweet_wrapper = TwitterWrapper.new

tweet_wrapper.search('Kontobezeichnung').each do |tweet|
  user_name = tweet.user.screen_name

  return false if !user_name.include?('Kontobezeichnung')

  tweet_wrapper.retweets(tweet_id: tweet_id)
end

Zusammenfassung

Das Obige ist die Art, wie ich darüber nachgedacht habe, also denke ich, dass es verfeinert werden kann. Wenn Sie diese Art zu schreiben haben, würde ich mich freuen, wenn Sie einen Kommentar abgeben könnten!

Gutes Twitter-Leben!

Recommended Posts

Twitter Marketing? Was ist, wenn ich es automatisiere?
Was ich gelernt habe
Was ich gelernt habe ② ~ Mock ~
Was ich gelernt habe ~ ~ DJUnit ~