Twitter bot プロフィール設定[拡張編]
こんにちはkazutoです。今回から以前、作成した、天気予報botを拡張していきます。、ターミナル 内でプロフィール設定が行える様に設定していきましょう。
事前準備
まずは事前準備を行いましょう。まあ今回は、特に準備をする必要はありませんが、コマンド操作が行える仕様
にしたいので、exetution.rbファイルを少し変更していきます。
require "./config.rb"
require "json"
require "open-uri"
require "csv"
require "./weather_class.rb"
require "./tweet.rb"
require "./search.rb"
require "./analysis.rb"
def execution
puts "メニューを選択してください"
puts "[1]天気予報を取得してツイートする"
puts "[2]プロフィール編集"
num = gets.to_i
case num
when 1
current_time_weather = wetaher(num)
tweet(current_time_weather,num)
when 2
tweet(current_time_weather,num)
else
puts "無効な値です"
end
end
execution()
case文を用いてtweetメソッドに新たに引数としてnumを渡しており、このままだとエラーが起きてしまうので、tweetメソッドを改良していきましょう。
def tweet(current_time_weather,num)
tweet = Tweet.new(current_time_weather)
case num
when 1
tweet.updata()
puts "ツイートが完了しました。"
when 2
tweet.account_setting()
else
puts "無効の値です"
end
上記の様に変更しました。引数numの値によって条件分岐を行っております。
case文を用いると、簡単な記述で条件分岐を行え、とても便利で変更にも強いです。
以上で事前準備のトピックを終了します。
Twitter bot プロフィール設定[実装編]
それでは、実際にターミナル内でプロフィール設定を行える様に実装していきましょう。
- account_settingメソッドの作成
- 実際にプロフィール設定をターミナル内で行う
account_settingメソッドの作成
まずは初めにプロフィールページを更新するメソッドaccount_settingメソッドを作成していきましょう。
def account_setting
puts "アカウント名:#{@client.user.name}"
puts "プロフィール文\n#{@client.user.description }"
puts "[1]アカウント名を変更する"
puts "[2]プロフィール文を変更する"
puts "[3]閉じる"
num = gets.to_i
case num
when 1
name =gets.chomp
@client.update_profile({name:name} )
when 2
description = gets.chomp
@client.update_profile({description:description} )
when 3
return
else
puts "無効な値です"
end
end
それでは解説をしていきます。
puts "アカウント名:#{@client.user.name}"
puts "プロフィール文\n#{@client.user.description }"
まず初めに自己アカウントの
- アカウント名
- プロフィール文
が表示します。
@client.userとする事でアカウント権限を持ったアカウントの情報を参照
する事ができます。
puts "[1]アカウント名を変更する"
puts "[2]プロフィール文を変更する"
puts "[3]閉じる"
num = gets.to_i
こちらのコードは、更新したい情報に紐づく番号を選択、変数numに格納という形になります。
case num
when 1
name =gets.chomp
@client.update_profile({name:name} )
when 2
description = gets.chomp
@client.update_profile({description:description} )
when 3
return
end
こちらのソースコードは、case文を用いて先程の変数numの値によって条件分岐を行っています。
when 1
name =gets.chomp
@client.update_profile({name:name} )
numの値が1の時は、アカウント名を変更します。
name = gets.chomp
変更後のアカウント名をnameに格納します。
@client.update_profile({name:name} )
Twitter::REST::Clientクラス
のupdate_profileメソッドを用いて、選択されたプロフィール情報を更新します。update_profileメソッドとはプロフィールを更新するメソッド
です。
when 2
description = gets.chomp
@client.update_profile({description:description} )
numの値が2の場合は、プロフィール説明文を変更します。
description = gets.chomp
変更後のプロフィール説明文を変数descriptionに格納しています。
@client.update_profile({description:description} )
最終的にTwitter::REST::Clientクラスのupdate_profileメソッドを用いて、プロフィール文を更新しています。
when 3
return
else
puts "無効な値です"
end
numの値が3の場合は、returnメソッドで処理を強制終了します。numの値に無効な値が入った場合は、「無効な値です」を出力します。
以上でaccount_settingメソッドの実装を終了します。
今回は、account_settingメソッドのみでプロフィール設定機能の実装が完成します。なので次のトピックでは、実際にプロフィールをターミナル内で更新をしてみましょう。
プロフィール設定をターミナル内で行ってみよう
では最後にターミナルでプロフィールページ を更新をしてみましょう。
まずは更新前の天気予報botです。今回は、プロフィール説明文を変更していきます。
上記の画像の様にコマンドメニューから「プロフィール編集」を選択して
- アカウント名
- プロフィール文
のいずれかを変更してみましょう。
画像の場合は、プロフィール説明文を「プロフィール説明文を更新しました」と変更しています。
上記の画像の様にプロフィールが更新されていれば成功です。
まとめ:Twitter bot プロフィール設定[拡張編]
今回は、以前、作成した、天気予報botにプロフィール設定機能を追加しました。ターミナル内で、プロフィール設定ができるのは、とても便利だと思います。他にも、幾つか機能を追加をしたので、執筆が出来次第、記事を更新していきます。
以上、kazutoでした。
関連記事
※この記事は、下記の2つの記事をご覧いただき、天気予報botを作成してから読み始めていきましょう。