LINEスタンプ作った
お久しぶりです.LINEスタンプを作ったので,その制作過程などについて簡単に綴りたいと思います.
LINEスタンプ作りました
私が普段ツイッターのアイコンにしたりこのブログにも使っているネコちゃんのスタンプです.
こいつですね.
制作過程のお話
私はキャラクターデザインを担当しました.データ化はさこくんがしてくれました.
ペンタブとか持ってないので普通に紙に書いたのを写真を撮って,それをillustratorでトレースして,色をつけてもらいました.
これが
こうなって
こうじゃ.
思ったよりも簡単にできちゃうんです.
申請過程
LINEの審査は結構時間がかかります.今回は最初の申請からリリースまで2週間近くかかりました.でも以前は何ヶ月もかかったそうなのでこれでも早い方みたいです.
審査基準は色々と厳しくて,未成年者の飲酒喫煙を想起するものがだめだとか,性的表現がだめだとかいうのがガイドラインに載っています.
そして今回,唯一リジェクトされたのがこれ(再現).
エナジードリンクを飲んで倒れているのを表現したかったのですが,どうもこのモンエナらしき何かがだめだったようです.怪しいとは言われていたのですがやはりダメでした.
そして最終的にこうなりました.
もうエナジードリンクなのかよくわからなくなってしまいましたが,まあ妥協です.
さいごに
結構作るのは楽しかったので,第2弾も作りたいな〜とか思ってます.よかったら買って下さい!!
MacBook Proのキーボードとマウスパッドが使えなくなったお話
前兆
昨年の12月に買ったばかりのMacBook Pro.ある日開いてみると(スリープから解除すると)ポインタが動きません.
とりあえず再起動すると動いたので問題ないものと見て放置.
それから同じようなことが何回か起こりましたが,いつも再起動すれば直りました.
ヤバい
いつも通り再起動すると,ついに何やら変な表示が出てきました.
ずっとこの2つが交互に出てきます.
マウスかマジックパッドの電源を入れろという表示です.
「いやあの,Bluetoothでマウスとかマジックパッド繋いで使ったりしてないんでw」
つまり,ノートパソコンのキーボードとマウスパッドの部分が認識されてないということです.
「ハード的な問題かしら」
嫌な予感が頭をよぎります.
PRAMリセットとか色々試してみるのですが,なんせキーボードがダメなので全く効果がありません.というか効果とか言う前にできません.
とりあえず,外付けのマウスとキーボードを繋いで起動. 起動したのは起動したのですが,相変わらずノーパソのキーボードとマウスパッドは反応してくれません.
悲しい状況 pic.twitter.com/yyFAnlYrXT
— お嬢 (@ottosan884) April 13, 2016
「OSが悪いのかな」 溜まっていたソフトウェア・アップデートをかけます. すると...なんとなんとポインタが動くではありませんか!感動です!!(<-動いて普通)
直った...はずだった
数日くらい快適にノーパソライフを送っていました.
すると,また同じ症状に見舞われました.スリープ解除からは動かないけど,再起動すると動くというやつ.
それからその症状が多発し...再起動しても動かなくなりました.
「そうなる気はしてた」
外付けライフ再来.
でも今度はアップデートはありません.
外付けキーボードでPRAMリセットなどの自分でできる対処法を色々と試します.
が,効果はありません.悲しい.
仕方なく修理に出すことにします.
キーボードって便利だね!泣 pic.twitter.com/RfRyn9RWFw
— お嬢 (@ottosan884) April 20, 2016
こうしてお嬢はキーボードの有り難みを思い知ったのでした.
お店で肩透かしを食らった
やっぱりハードの問題よね...と思ってバックアップもしっかりとって数日くらいノーパソが帰ってこないも当たり前といった心持ちでKitcutに向かいました.
パソコンの電源を入れると確かにポインタは動きません.
お店の人も奥から外付けのマウスとキーボードを取り出してきます.
しかし,お店の人は何かを少しいじっただけですぐに直してしまいました.
ほえ?
唖然としていると「確認して下さい」とPCを差し出されました.
確かにちゃんとキーボードもマウスパッドも反応してくれます.
お店の人はこの原因をこう語ります.
- システムの一時的なエラー
- 電源をつけたままにしておくとキーボードに入力情報が残り,それが溜まっていくとエラーを起こすことがある
- 使わないときは電源切ってね
あ,はい.すみません.
確かにいつも電源切るのが面倒で電源つけっぱでノーパソを閉じていました.
今後はめんどくさがらずにちゃんと電源切ります(´;ω;`)
【追記】
今回,お店に持って行くまでの過程をあたかも全て自分でやったかのように書いておりますが,複数の方々に色々と手伝ってもらったりアドバイスを頂いたりしておりました.その方々にこの場を借りて厚く御礼申し上げたいと思います.ありがとうございましたm(._.)m
直ったと錯覚していた
お店の人に直してもらった後は,まあまあ普通に使えてました.
ちゃんとこまめに電源を切るようにしていると,問題はありませんでした.
しかし,1回だけ電源を切るのを忘れて長時間放置してしまいました.
するととたんに使えなくなって,今度は起動した後にキーボードが見つかりませんといった表示がでるようになりました.
こんな感じでキーボードもマウスも使えません.ログイン出来ないので何もできません.
再度お店へ
とりあえずもう迷わずお店に行きました.
まさかの前回と同じ店員さんで,マジか〜と思いながら事情を説明すると,一度中を見たほうが良さそうですねということでお預かりになりました.
修理は丁度一週間ほどで出来ました.保証期間中だったので無料でしてもらえました.「キーボードとマウスパッドの中の線を交換しときました」とのこと.やはりハード的な問題だった模様.ちゃんとログインできました!しかも中のデータもちゃんと残ってる!わーい!しかし再度「電源をこまめに切るようにして下さい」と言われたので切るようにします(´・ω・`)
【スケート部】新歓ムービーつくったよ
珍しくスケートネタ.スケート部の新歓の動画作りました.情報系の学部だと言うと動画の編集とか任されちゃうのが情報系あるあるみたいです.動画の紹介と簡単な補足情報を伝えられたらいいかなと思います...
新歓ムービーその1
京都アクアリーナでの朝練の様子をもとに,部活の紹介をしています.基本的に先輩後輩関係なく経験者が初心者に教えます.コーチが来てくれているときはコーチにも教えてもらうことができます.貸切を取るのは基本的に以下の3つのスケートリンクです.
他大学の人がビジターで入ってきたりすることもあり,交流の輪が広がります.普段の貸切以外に合宿も年に数回ほどあり,楽しい感じです.
新歓ムービーその2
部員の試合での様子を紹介しています.立命館の出場する試合には以下の様なものがあります.正式名称だと長くなるので俗称で失礼します.
- 大学生の大会
- 西インカレ,インカレ,関カレ,フリー大会
- 京都の大会
- 京都府民,オール京都
動画でもわかるように大学の試合は他の試合と雰囲気が違います.応援がすごいです.みんなでワイワイやってる感じです.後,全日本レベルのすごい人の演技も見れたりします.
さいごに
そんなこんなでスケート部こんな感じでやってます.動画でも言っているように初心者と男子を特に募集してます.大学で何か始めたいという方,スケートという選択肢がここにあります.無料体験とかやってるのでよかったら来てください.情報は基本的にツイッターから発信されてます(--->@rits__fsc).というかとにかくスケート部の存在を知ってもらいたいです.「そんなん立命にあったんや」ってよく言われます.あるんですよ!!!!w
映像撮影のいろいろ
先日,とあるご縁で映像(割りとガチめなやつ)の撮影に協力(出演)させていただくことになり,なかなかない経験だったので色々面白かったことを書き留めておきたいと思います.半分くらい私の勝手な推測で書いてますのでその辺ご了承ください.
事前準備
事前にメールが来て当日の服装のあれこれを指定されました.(基本的に映るのは上半身)
- 細かいチェックやストライプは映像に影響する可能性があるのでNG.
- 上半身全体が黒いと顔の雰囲気が暗くなるのでNG.一部明るい色があればOK.
- 上半身上半身全体が白いと,顔と服の絞りのバランスが難しいのでNG.
おそらく細かいチェックやストライプがNGなのは色にじみとかを起こすからだと思います.
例えばこういうやつですね.30という数字の周りに虹色のモヤッとしたやつがあります.これが色にじみです.多分.
上記の項目以外にも今回の映像のコンセプトに合わせた服装の制限がありました.
- ニットやブーツなどの冬を感じさせるものはNG.
- カジュアルな格好.
推測するに,作った映像は年中使いたいので冬を感じさせるものはNGなのでしょう.後はまあ,学生っぽくカジュアルにってことじゃないですかね(適当)
撮影場所の吟味
いよいよ撮影当日.一応建物のところでの撮影でしたが,屋内か屋外かというと屋外でした.実際にカメラを構えたりして撮影する場所を吟味しておられました.
セッティング
場所が決まったらカメラのセッティング.私は撮影場所を吟味されているときから寒さをしのぐために室内にいたので私の座るところに代わりの人が座って角度とかを調節されてました.多分.
撮影
いよいよ撮影です.実際に私が座って声を出して,光や音声の調節をされてました.レフ板は基本的に光の調節をするのに使うイメージですが,その日は結構風が吹いていて,マイクを風から守り,風の「ボボボボボ」という音を防ぐためにもレフ板を使っておられました.
撮影中も日差しの加減や周りの音(救急車のサイレン,ヒールで歩く音)など常に変化する環境に注意を向けておられたのが印象的でした.
さいごに
そんなこんなでたった30秒の映像撮るだけでもいろいろ大変なのだな〜って感じましたはい.おそらく一番気を遣っておられたであろう被写体の話に触れなかったのはたまたまじゃないです()まあ,始めの方に書いたように冬を感じさせるものはダメなのでコートとか普通に着れなくて普通に凍えてた話くらいはしときますか.
とりあえず他にも何人かの撮影があったみたいなので全体の完成が楽しみですね.
Rubyで天気予報の取得と画像のツイート
前回,前々回に引き続き,Twitter botの拡張をしていきます.わーい.
天気予報の取得とツイート
今回はbotのTL上で #お嬢天気予報 というハッシュタグをつけてつぶやいた人に対して,天気予報を送りつけるという機能を作ってみますた.
天気予報の取得
これも色々とやり方があると思いますが,今回はライブドア天気情報「Weather Hacks」の結果を利用します.例えば,滋賀県大津の天気の取得はこんな感じ.
require 'net/http'
require 'uri'
require 'json'
uri = URI.parse('http://weather.livedoor.com/forecast/webservice/json/v1?city=250010')
json = Net::HTTP.get(uri)
result = JSON.parse(json)
p result
city=
の後のIDを変えてやることで,様々な地域の天気予報を取得することができます.これを実行すると,
{
"pinpointLocations"=>
[{
"link"=>"http://weather.livedoor.com/area/forecast/2520101",
"name"=>"大津市南部"
},{
"link"=>"http://weather.livedoor.com/area/forecast/2520400",
"name"=>"近江八幡市"
},{
"link"=>"http://weather.livedoor.com/area/forecast/2520600",
"name"=>"草津市"
},{
"link"=>"http://weather.livedoor.com/area/forecast/2520700",
"name"=>"守山市"
},{
"link"=>"http://weather.livedoor.com/area/forecast/2520800",
"name"=>"栗東市"
},{
"link"=>"http://weather.livedoor.com/area/forecast/2520900",
"name"=>"甲賀市"
},{
"link"=>"http://weather.livedoor.com/area/forecast/2521000",
"name"=>"野洲市"
},{
"link"=>"http://weather.livedoor.com/area/forecast/2521100",
"name"=>"湖南市"
},{
"link"=>"http://weather.livedoor.com/area/forecast/2521300",
"name"=>"東近江市"
},{
"link"=>"http://weather.livedoor.com/area/forecast/2538300",
"name"=>"日野町"
},{
"link"=>"http://weather.livedoor.com/area/forecast/2538400",
"name"=>"竜王町"
}],
"link"=>"http://weather.livedoor.com/area/forecast/250010",
"forecasts"=>
[{
"dateLabel"=>"今日",
"telop"=>"晴時々曇",
"date"=>"2016-02-21",
"temperature"=>{
"min"=>nil,
"max"=>{"celsius"=>"10", "fahrenheit"=>"50.0"}
},
"image"=>{
"width"=>50,
"url"=>"http://weather.livedoor.com/img/icon/2.gif",
"title"=>"晴時々曇",
"height"=>31
}
},{
"dateLabel"=>"明日",
"telop"=>"晴のち曇",
"date"=>"2016-02-22",
"temperature"=>{
"min"=>{"celsius"=>"2", "fahrenheit"=>"35.6"},
"max"=>{"celsius"=>"9", "fahrenheit"=>"48.2"}},
"image"=>{
"width"=>50,
"url"=>"http://weather.livedoor.com/img/icon/5.gif",
"title"=>"晴のち曇",
"height"=>31
}
},{
"dateLabel"=>"明後日",
"telop"=>"曇のち雨",
"date"=>"2016-02-23",
"temperature"=>{
"min"=>nil,
"max"=>nil
},
"image"=>{
"width"=>50,
"url"=>"http://weather.livedoor.com/img/icon/13.gif",
"title"=>"曇のち雨",
"height"=>31
}
}],
"location"=>{
"city"=>"大津",
"area"=>"近畿",
"prefecture"=>"滋賀県"
},
"publicTime"=>"2016-02-21T11:00:00+0900",
"copyright"=>{
"provider"=>[{
"link"=>"http://tenki.jp/",
"name"=>"日本気象協会"
}],
"link"=>"http://weather.livedoor.com/",
"title"=>"(C) LINE Corporation",
"image"=>{
"width"=>118,
"link"=>"http://weather.livedoor.com/",
"url"=>"http://weather.livedoor.com/img/cmn/livedoor.gif",
"title"=>"livedoor 天気情報",
"height"=>26
}
},
"title"=>"滋賀県 大津 の天気",
"description"=>{
"text"=>"近畿地方は、寒気の影響で北部を中心に雲が広がり、雨や雪の降っているところがあります。
今日の滋賀県は、冬型の気圧配置となり北部を中心に雲が広がりやすく、夕方まで雪や雨の降るところがある見込みです。
明日の滋賀県は、高気圧に覆われて概ね晴れますが、午後は気圧の谷の影響で次第に雲が広がるでしょう。",
"publicTime"=>"2016-02-21T10:34:00+0900"
}
}
こんな感じの結果が返ってきます.この中の,今日の天気や明日の天気の情報を利用していきたいと思います.
取得結果のツイート
天気予報が取得できたら,後はこの結果を表示したい形にしてツイートしてやるだけです.
require 'twitter'
require 'net/http'
require 'uri'
require 'json'
client_streaming = Twitter::Streaming::Client.new do |config|
config.consumer_key = "YOUR_CONSUMER_KEY"
config.consumer_secret = "YOUR_CONSUMER_SECRET"
config.access_token = "YOUR_ACCESS_TOKEN"
config.access_token_secret = "YOUR_TOKEN_SECRET"
end
client_rest = Twitter::REST::Client.new do |config|
config.consumer_key = "YOUR_CONSUMER_KEY"
config.consumer_secret = "YOUR_CONSUMER_SECRET"
config.access_token = "YOUR_ACCESS_TOKEN"
config.access_token_secret = "YOUR_TOKEN_SECRET"
end
USERNAME = "ottosan884_bot"
client_streaming.user do |object|
case object
when Twitter::Tweet
username = object.user.screen_name # ユーザー名
tweet = object.text # ツイート内容
tweet_id = object.id # ツイートのID
option = {:in_reply_to_status_id => tweet_id}
if (!tweet.index("RT")) && (username != USERNAME)
if (/#お嬢天気予報/ =~ tweet)
puts username + ':' + tweet
uri = URI.parse('http://weather.livedoor.com/forecast/webservice/json/v1?city=250010')
json = Net::HTTP.get(uri)
result = JSON.parse(json)
today_tel = result['forecasts'][0]['telop'] #今日の天気
tomor_tel = result['forecasts'][1]['telop'] #明日の天気
min_tem = result['forecasts'][1]['temperature']['min']['celsius'] #明日の最低気温
max_tem = result['forecasts'][1]['temperature']['max']['celsius'] #明日の最高気温
client_rest.update("@#{username} #{result['title']}\n#{result['link']}\n予報の発表日時: #{result['publicTime']}\n今日: #{today_tel}\n明日: #{tomor_tel} 最低#{min_tem}度 最高#{max_tem}度\n#お嬢天気予報", option)
# つづく
って感じです.
煽り画像を送りつける
画像のツイートはとても簡単ですが一応書き留めときます. 今回はお嬢botのTL上で #お嬢の煽り というタグをつけてつぶやかれたツイートに煽り画像を送りつけるという仕様です. まず送りつけたい画像を用意します.ディレクトリの中はこんな感じ.
autorep.rb
ってのの中身はこんな感じ.上記の天気予報のプログラムの続きになってます.
#つづき
elsif (/#お嬢の煽り/ =~ tweet)
puts username + ':' + tweet
files = Dir.glob("aori*")
pic_id = client_rest.upload(File.new(files.sample))
option = {
:in_reply_to_status_id => tweet_id,
:media_ids => pic_id
}
client_rest.update('@'+username+' #お嬢の煽り', option)
end
end
end
end
Dir.glob()
はカッコ内の条件に該当するファイル名を文字列の配列として返します.該当ファイルがない場合は空の配列を返します.今回,画像には全てaori
という文字列が含まれるようにしたので"aori*"
(*
は空文字列を含む任意の文字列)で全ての画像のファイル名がfiles
という配列に格納されます.
後はuploadして得られたIDをoptionに加えてやれば画像をツイートすることができます.めでたしめでたし.
今後の展開
なんか天気予報もっと簡単に出来んじゃねえのって煽られてる()ので暇があればやってみたいな〜.とりあえずTwitter botシリーズはここで一旦キリを付けたいと思います. Gitにコードうpしました.-> https://github.com/ottosan/ojobot
RubyでTwitterのbot化, 自動ふぁぼ, 自動リプ
前回の内容に引き続き,Twitterのbotを拡張していきます. ottosan84.hatenablog.com
とりあえずbot化
前回のはただ単に実行したら1回ツイートするだけのものだったで,自動的につぶやいてくれるbotにしていきます.
色々やり方はあると思いますが今回はsleep関数を活用した方法でやっていきたいと思います.
require "twitter"
#この辺の詳しいことは前回の記事へ--------------------------
client = Twitter::REST::Client.new do |config|
config.consumer_key = "YOUR_CONSUMER_KEY"
config.consumer_secret = "YOUR_CONSUMER_SECRET"
config.access_token = "YOUR_ACCESS_TOKEN"
config.access_token_secret = "YOUR_TOKEN_SECRET"
end
#-----------------------------------------------------
loop do
File.open("tweets.txt", "r") do |bot|
@bots = bot.read.split("\n")
end
tweet = @bots.sample
sleep_time = 60 + rand(3600)
t = Time.now
puts "#{tweet} (#{t}) next (#{t + sleep_time})"
client.update tweet
sleep sleep_time
end
全体のコードはこんな感じです. ちょっと詳しく見て行きませう.
テキストファイルからツイートを決定
File.open("tweets.txt", "r") do |bot|
@bots = bot.read.split("\n")
end
tweet = @bots.sample
この部分ですね.予めtweets.txt
にbotにつぶやかせたいことを書いておきます.こんな感じです.内容は突っ込まないでください.
split
は与えた条件でデータを区切って配列に入れてくれます.sample
でランダムにその中から一つ選びます.
sleep関数で時間をあけてツイート
sleep_time = 60 + rand(3600)
t = Time.now
puts "#{tweet} (#{t}) next (#{t + sleep_time})"
client.update tweet
sleep sleep_time
sleep
は与えた秒数分だけプログラムの実行を停止させてくれます.今回はツイートする感覚もランダムにしたかったのでrand
関数を使って1分〜1時間(60秒〜3600秒)の間隔でツイートするようにしました.
これらを無限ループで繰り返すことでbotの完成です.ファイル処理はloop
の外でも良かったのですが.いちいちプログラムを止めなくてもテキストファイルを編集するだけでbotのツイートパターンを追加・削除できるようにループの中に入れました.
後,同じ内容のツイートを連続してするとツイートが反映されないことがあるのでその点は注意です.できだけたくさんのパターンを作っておきましょう.
自動ふぁぼ(いいね)
個人的にまだ「ふぁぼ」という言い方のほうがしっくり来るのですが,「いいね」に名前が変わった今では自動ふぁぼじゃなくて自動いいねの方が正しいのでしょうか...なんて話は置いといて
とりあえず全体のコード.自分のTL上にある「お嬢」というワードが含まれるツイートをふぁぼ...じゃなくていいねします.
require "twitter"
client_streaming = Twitter::Streaming::Client.new do |config|
config.consumer_key = "YOUR_CONSUMER_KEY"
config.consumer_secret = "YOUR_CONSUMER_SECRET"
config.access_token = "YOUR_ACCESS_TOKEN"
config.access_token_secret = "YOUR_TOKEN_SECRET"
end
client_rest = Twitter::REST::Client.new do |config|
config.consumer_key = "YOUR_CONSUMER_KEY"
config.consumer_secret = "YOUR_CONSUMER_SECRET"
config.access_token = "YOUR_ACCESS_TOKEN"
config.access_token_secret = "YOUR_TOKEN_SECRET"
end
USERNAME = "ottosan884" #自分のユーザー名(@以下のやつ)
client_streaming.user do |object|
case object
when Twitter::Tweet
if (/お嬢/ =~ object.text) && (object.user.screen_name != USERNAME)
puts object.user.screen_name + ':' + object.text
client_rest.favorite(object.id)
end
end
end
今回,タイムラインを取得するためにStreamingというTwitterのAPIを使います.このAPIは新しいツイートを受信し続けることができます.今まで使っていたRESTと同じように,コンシューマキーとかを渡してやることで使えます.
object.user.screen_name != USERNAME
で自分のツイートは除きます.favorite
にツイートのIDを与えるとそのツイートがいいねされます.ここで簡単に取得できるデータの説明をします.
.text
....ツイートの内容を取得..id
...ツイートのIDを取得..user.name
...ツイートをしたアカウントのアカウント名を取得..user.screen_name
...ツイートをしたアカウントのユーザー名を取得.
このコードで使ってないのもありますが後で使うのでまとめてここに書いておきます.他にも取得できるデータはありますがまあ今回はこのくらいで.以上が自動いいねでした.はい.
自動リプ
USERNAME = "ottosan884_bot"
client_streaming.user do |object|
case object
when Twitter::Tweet
#取得した必要なデータを変数に格納
username = object.user.screen_name
name = object.user.name
tweet = object.text
tweet_id = object.id
if (/@ottosan884_bot/ =~ tweet) && (username != USERNAME) && (!tweet.index("RT")) #自分のツイートとRTは除く
puts username + ':' + tweet
File.open("replies.txt", "r") do |reply|
@rere = reply.read.split("\n")
end
re = @rere.sample
if (re =~ /さん/)
repl = name + re
else
repl = re
end
end
puts ' >' + repl
client_rest.update('@'+username+' '+repl, {:in_reply_to_status_id => tweet_id})
end
end
全体のコードはこんな感じ.APIのとこは省略しました.replies.txt
の内容はこんな感じ.
文頭に「さん」がついていたらリプを送ってきたアカウントの名前を最初にくっつける仕様です.
リプの仕方
自動リプの最大のポイント.
client_rest.update('@'+username+' '+repl, {:in_reply_to_status_id => tweet_id})
この部分ですね.最初,ユーザー名をリプの最初につけるだけで終わっていたのですが,これでは新規リプを投げてるだけでした.:in_reply_to_status_id
というオプションを使うことでツイートに対するリプを送ることができます.
こんな感じ.他にも色々なオプションがあり,これらを使うことで画像をつけてツイートしたり,位置情報をつけたりすることができます.詳しくはこちらのupdateのところを見てみてください.
今後の展開
今後というか,天気予報とか煽り画像を送りつけるコードも書いたので,まあ後々うpしていきたいと思います.今回はこの辺で.
Rubyでツイートしてみた
Rubyを始めて約一週間...なにかこう,実用的(?)なことをしてみたくてRubyでツイートが簡単にできると聞いたのでしてみることにしました.
環境
- Ruby: 2.3.0 (->Ruby公式サイト)
- Rubygem: 2.5.1
1. コンシューマ登録
Twitterのサービスプロバイダーにコンシューマ(アプリケーション)を登録します. こちらからできます.つぶやきたいアカウントでログインするとこんな感じの画面になります.
登録ができたらこんな感じになります.
めっちゃ適当."OjoBot"がさっき登録したアプリケーションの名前ですね.これの"Keys and Access Tokens"のところに
ってのがあって,これらがアプリケーションを使うのに必要になってくるので後で見れるようにしておきます.
2. アクセストークン発行
Twitterの各種リソースにアクセスするためのアクセストークンというのを発行してもらいます.先ほどの"Keys and Access Tokens"の下の方に"Create my access token"とかいうボタンが有ると思うのでそこをポチッとな.すると
ってのが出現します.こいつらも後で使うので見れるようにしておきます.
あ,後Permmisionが"Read and Write"になっているか要確認.
こうなってたらおk.
3. twitterをインストール
gemでtwitterをインストールします.ターミナルで
gem install twitter
を実行.現時点での最新版は5.16.0.(詳しくは->twitter)
4. Ruby実装
わーい!やっとコーディングするお!
require "twitter"
client = Twitter::REST::Client.new do |config|
config.consumer_key = "自分のConsumer Keyをコピペ"
config.consumer_secret = "自分のConsumer Secretをコピペ"
config.access_token = "自分のAccess Tokenをコピペ"
config.access_token_secret = "自分のAccess Token Secretをコピペ"
end
client.update("test from OjoBot") #つぶやきたいことを適当に
これを
ruby [ファイル名].rb
って感じで実行してやるとツイートできます.
じゃじゃ〜ん!!ちゃんとクライアントがOjoBotになってます✨👏
今後の展望
展望というほどではないですが,このままだとツイート出来るだけでbotになってないので次はこれをbot化していったり,他にも面白いのがあったら適当に発展させていきたいです.