![f:id:paiza:20180110115336p:plain f:id:paiza:20180110115336p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/p/paiza/20180110/20180110115336.png)
(English article is here)
![f:id:paiza:20151217152725j:plain f:id:paiza:20151217152725j:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/p/paiza/20151217/20151217152725.jpg)
PaizaCloud Cloud IDEを使う
それでは、始めていきましょう。まずは、PaizaCloudにログインします。 PaizaCloud Cloud IDEのサイトはこちらです。![https://paiza.cloud/](https://cdn-ak.f.st-hatena.com/images/fotolife/p/paiza/20171213/20171213233926.png)
サーバを作る
次は、開発環境となるサーバを作ります。![f:id:paiza:20171213234155p:plain f:id:paiza:20171213234155p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/p/paiza/20171213/20171213234155.png)
![f:id:paiza:20171218232242p:plain f:id:paiza:20171218232242p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/p/paiza/20171218/20171218232242.png)
Twitter APIキーの取得
TwitterボットなどのプログラムからTwitterを使いたい場合は、Twitter APIを利用する必要があります。Twitter APIを利用するには、APIキーが必要なので作成しましょう。 APIキーを作るには、まずTwitterのアプリケーション管理画面でアプリケーションを作成します。 Twitterにログインした後、"Twitter Apps"ページを開きます。 https://apps.twitter.com/apps.twitter.com![f:id:paiza:20180110102619p:plain f:id:paiza:20180110102619p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/p/paiza/20180110/20180110102619.png)
![f:id:paiza:20180110102655p:plain f:id:paiza:20180110102655p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/p/paiza/20180110/20180110102655.png)
![f:id:paiza:20180110102712p:plain f:id:paiza:20180110102712p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/p/paiza/20180110/20180110102712.png)
![f:id:paiza:20180110102738p:plain f:id:paiza:20180110102738p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/p/paiza/20180110/20180110102738.png)
![f:id:paiza:20180110102757p:plain f:id:paiza:20180110102757p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/p/paiza/20180110/20180110102757.png)
![f:id:paiza:20180110104343p:plain f:id:paiza:20180110104343p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/p/paiza/20180110/20180110104343.png)
![f:id:paiza:20180110104354p:plain f:id:paiza:20180110104354p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/p/paiza/20180110/20180110104354.png)
プログラムの作成
それでは、Twitterボットのプログラムを作成していきましょう。 まずは、APIキーの設定をするために、"config.rb"というファイルを作成します。 PaizaCloudでは、ブラウザ上でファイルの作成・編集ができます。 PaizaCloudの画面左側の﹁新規ファイル﹂アイコンをクリックしてみましょう。![f:id:paiza:20171218232330p:plain f:id:paiza:20171218232330p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/p/paiza/20171218/20171218232330.png)
![f:id:paiza:20171218232345p:plain f:id:paiza:20171218232345p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/p/paiza/20171218/20171218232345.png)
require 'twitter' config = { consumer_key: "YOUR_CONSUMER_KEY", consumer_secret: "YOUR_CONSUMER_SECRET", access_token: "YOUR_ACCESS_TOKEN", access_token_secret: "YOUR_ACCESS_SECRET", } @restClient = Twitter::REST::Client.new(config) @streamingClient = Twitter::Streaming::Client.new(config)
![f:id:paiza:20180110110629p:plain f:id:paiza:20180110110629p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/p/paiza/20180110/20180110110629.png)
ツイートする
設定ができたので、試しにツイートしてみましょう。 まずは、Rubyを対話的に利用できる"irb"コマンドを使ってみます。 PaizaCloudでは、ブラウザ上で、コマンドを入力するための﹁ターミナル﹂を使うことができます。 画面左側の、﹁ターミナル﹂のボタンをクリックします。![f:id:paiza:20171213234317p:plain f:id:paiza:20171213234317p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/p/paiza/20171213/20171213234317.png)
$ irb -r ./config.rb
![f:id:paiza:20180110105842p:plain f:id:paiza:20180110105842p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/p/paiza/20180110/20180110105842.png)
@restClient.update("https://paiza.cloud/ を使ってRubyでツイートしてみた!")
![f:id:paiza:20180110110242p:plain f:id:paiza:20180110110242p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/p/paiza/20180110/20180110110242.png)
![f:id:paiza:20180110110420p:plain f:id:paiza:20180110110420p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/p/paiza/20180110/20180110110420.png)
RubyでTwitterボットを作る
それでは、今度はメンションに返事をしてくれるTwitterボットを作ってみましょう。ここでは、今の時刻、今日や明日の日付を教えてくれるTwitterボットを作ってみます。 画面左側の﹁新規ファイル﹂ボタンをクリックして、"bot.rb"という名前でファイルを作成します。作成できたら、コードを書いていきましょう。 ここで、USERNAMEはツイッターのアカウント("@"を除く)に置き換えてください。 bot.rb:require 'twitter' require './config' ENV['TZ'] = 'JST-9' username = "USERNAME" @streamingClient.user do |tweet| if tweet.class == Twitter::Tweet && tweet.text.include?("@#{username}") && !tweet.in_reply_to_status_id puts "Found tweet: #{tweet}" if tweet.text.include?("何時") now = Time.now @restClient.update("@#{tweet.user.screen_name} 今は#{now.hour}時#{now.min}分#{now.sec}秒です。", in_reply_to_status_id: tweet.id) end if tweet.text.include?("今日") today = Time.now @restClient.update("@#{tweet.user.screen_name} 今日は#{today.year}年#{today.month}月#{today.day}日です。", in_reply_to_status_id: tweet.id) end if tweet.text.include?("明日") tomorrow = Time.now + (60*60*24) @restClient.update("@#{tweet.user.screen_name} 明日は#{tomorrow.year}年#{tomorrow.month}月#{tomorrow.day}日です。", in_reply_to_status_id: tweet.id) end end end環境変数TZで、タイムゾーンを設定しておきます。 @streamClientのuserメソッドではツイートを監視します。ツイートが見つかると、ブロックが実行され、tweetオブジェクトにツイートが読み込まれます。 tweet.textがツイートメッセージになるので、@ユーザ名が含まれているか確認します。ループを防ぐために、リプライではないことも確認しておきます。 そして、メッセージに﹁時間﹂、﹁今日﹂、﹁明日﹂などのキーワードが含まれているか確認し、@restClient.updateで、返事をツイートします。
botを動かす
これでプログラムが完成です! PaizaCloudのターミナルでRubyのTwitterボットを実行してみましょう!$ ruby bot.rb
![f:id:paiza:20180110114713p:plain f:id:paiza:20180110114713p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/p/paiza/20180110/20180110114713.png)
![f:id:paiza:20180110114822p:plain f:id:paiza:20180110114822p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/p/paiza/20180110/20180110114822.png)
![https://paiza.cloud](https://cdn-ak.f.st-hatena.com/images/fotolife/p/paiza/20171214/20171214002031.png)
まとめ
PaizaCloudで、RubyでTwitterボットを作り、動かしてみました。 Twitterボットは少ないコードで簡単に作れますし、改造も簡単です。どんなリプライにどんな返信をするか、考えながら作るのがおもしろいです。PaizaCloudで作ったTwitterボットは、すぐに公開できるので、いろいろな人に使ってもらえるのも楽しいですね。 ぜひTwitterボットを作ってみてください! (Twitterボットを作ってみたらpaiza(@paiza_official)まで教えてくれるとうれしいです!)![https://paiza.cloud](https://cdn-ak.f.st-hatena.com/images/fotolife/p/paiza/20171214/20171214002031.png)
![](https://cdn-ak.f.st-hatena.com/images/fotolife/p/paiza/20170206/20170206122359.jpg)
![paizaラーニング](https://paiza-webapp.s3.amazonaws.com/front/images/news/blog_bnr_04.png)
![paizaのスキルチェック](https://paiza-webapp.s3.amazonaws.com/front/images/news/blog_bnr_05.png)