1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Twitterマーケティング?自動化しちゃば?

Last updated at Posted at 2020-08-10

この頃、サービスをリリースした阿部です。
過剰なタイトルをつけたものの、マーケティングがわからなく四苦八苦です。
とりあえず、RubyでTwitter運用を始めたので、そのナレッジを記載します。
(始めたばかりで成果のほどは不明。)

Twitter運用めんどくさい。。
僕、Rubyエンジニアでツイッタラーじゃないんだけど(怒)
簡単に運用する方法ないの?
って人向けの記事です。

サンプルはRubyで記載しています。

アジェンダ

  • どうやって自動化した?
  • Twitter Rest APIとは?
  • RubyのTwitter REST APIの導入方法
  • 実際にどんな運用をしているか
  • まとめ

どうやって自動化した?

僕は、Twitter Rest APIを使って自動化しました。

Twitter Rest APIとは?

名前の通り、Twitterが提供しているAPIです。
このAPIを呼び出すことによって、
ツイートやリツイートなどのTwitter上の処理を、プログラムから実行することができます。

RubyにはこのTwitter Rest APIを簡単に呼び出せるgemがあるので、
恩恵に預かりましょう。
https://github.com/sferik/twitter

各APIの概要、パラメーターなどを知りたい場合は下のリファレンスを参照してください。
わかりやすくまとめられています。
https://rdoc.info/gems/twitter/Twitter/REST

Twitter REST APIの導入方法

アカウント作成

まずはTwitter開発者アカウントを作成します。
僕はこちらの記事を参考にしました。
https://qiita.com/kngsym2018/items/2524d21455aac111cdee

英語で連絡しなければいけないので少々手間ですが、
気合で乗り越えてください。

実装

Clientを作成するクラスを実装しましょう。
ClientがTwitterAPIを呼び出す各メソッドを持っています。
Clientを作成してメソッドを呼び出せば、
ツイートやリツイートなどの処理をプログラムから呼び出すことが可能です。

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

今回、設定はconfig/twitter.ymlに配置しましたが、好きなところに配置してください。
Twitter::REST::ClientをNewする際に、それぞれの値を正しく入力できれば問題ないです。
twitter-wrapper.rbには今回説明するメソッドしか記載していませんが、
他にもたくさんメソッドがあるのでドキュメントで確認してみると面白いと思います。

実際にどんな運用をしているのか

僕は以下の運用を行っています。

  • コンテンツが投稿されたタイミングでツイートする
  • 一定時間ごとに自分のツイートをリツイートする

コンテンツが投稿されたタイミングツイートする

コンテンツが投稿された時、tweetを呼び出しています。
ツイートAPIを呼び出すupdate_with_mediaのラップメソッド(tweet_with_media)を実行しているだけです。
今回は画像も一緒にツイートしたかったので、update_with_mediaを使っています。
画像が不要な場合は、updateメソッドを使えば大丈夫です。

tweet.rb
  class Tweet < Twitters::Application
    def tweet(content)
      tweet_wrapper = TwitterWrapper.new
      content = content #ツイート内容
      images  = 【画像】 # Array<File>
      tweet_wrapper.tweet_wrapper.tweet_with_media(content: content, images: images)
    end
  end

一定時間ごとに自分のリツイートする

cronで下記処理を呼び出しています。
ただ、すでにリツイートしているツイートを再度リツイートしようとするとエラーを吐きます。
処理を追加してあげたほうが優しいと思います。

retweet.rb
tweet_wrapper = TwitterWrapper.new

tweet_wrapper.search('アカウント名').each do |tweet|
  user_name = tweet.user.screen_name

  return false if !user_name.include?('アカウント名')

  tweet_wrapper.retweets(tweet_id: tweet_id)
end

まとめ

上記は僕がパパッと考えたやり方なので、もっと洗練できると思います。
こんなやり方、書き方あるよって方はコメントいただければ幸いです!

良き、Twitterライフを!

1
2
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
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?