9-3-2 標準ライブラリを使ってfacebookトップページのlike数を取得しよう
date
ライブラリを使うプログラムを記述し保存する
以下のようなプログラムを記述し、ファイル名をlibrary_date.rb
として保存します。
require 'date' anniversary = Date.new(2018, 11, 18) p anniversary p anniversary.year p anniversary.month p anniversary.day p anniversary.wday day_of_the_weeks = %w(日 月 火 水 木 金 土) day_of_the_week = day_of_the_weeks[anniversary.wday] p day_of_the_week p anniversary.strftime('%Y年%m月%d日') + day_of_the_week + '曜日'
date
ライブラリを使うプログラムを実行する
コマンドライン上で保存したファイルを指定して実行します。
実行結果にDate
オブジェクトが表示された後、2018
、11
、18
、0
、"日"
、"2018年11月18日日曜日"
と表示されます。
$ ruby -Ku library_date.rb # Windowsの場合-Kuオプション指定 #<Date: 2018-11-18 ((2458441j,0s,0n),+0s,2299161j)> 2018 11 18 0 "日" "2018年11月18日日曜日"
open-uri
ライブラリを使うプログラムを記述し保存する
以下のようなプログラムを記述し、ファイル名をlibrary_open_uri.rb
として保存します。
require 'open-uri' url = 'http://graph.facebook.com/?id=http://www.facebook.com' file = open(url) p file.read
open-uri
ライブラリを使うプログラムを実行する
インターネットに接続した状態で、コマンドライン上で保存したファイルを指定して実行します。
実行結果にFacebookトップページの「いいね!」数が含まれるJSONが表示されます。
$ ruby library_open_uri.rb
"{\"og_object\":{\"id\":\"10151063484068358\",\"title\":\"Welcome to Facebook - Log In, Sign Up or Learn More\",\"type\":\"website\",\"updated_time\":\"2017-03-15T08:15:25+0000\"},\"share\":{\"comment_count\":5810,\"share_count\":158666962},\"id\":\"http:\\/\\/www.facebook.com\"}"
json
ライブラリを使うプログラムを記述し保存する
以下のようなプログラムを記述し、ファイル名をlibrary_json.rb
として保存します。
require 'json' original_hash = { share: { comment_count: 1, share_count: 2 } } p original_hash.to_json new_hash = JSON.parse(original_hash.to_json) p new_hash p new_hash['share'] p new_hash['share']['comment_count'] p new_hash['share']['share_count']
json
ライブラリを使うプログラムを実行する
コマンドライン上で保存したファイルを指定して実行します。
実行結果に"{\"share\":{\"comment_count\":1,\"share_count\":2}}"
、{"share"=>{"comment_count"=>1, "share_count"=>2}}
、{"comment_count"=>1, "share_count"=>2}
、1
、2
が表示されます。
$ ruby library_json.rb "{\"share\":{\"comment_count\":1,\"share_count\":2}}" {"share"=>{"comment_count"=>1, "share_count"=>2}} {"comment_count"=>1, "share_count"=>2} 1 2
Facebookトップページの「いいね!」数を取得するプログラムを記述し保存する
以下のようなプログラムを記述し、ファイル名をlibrary_fb_share_counter.rb
として保存します。
require 'open-uri' require 'json' require 'date' class FbShareCounter BASE_URL = 'http://graph.facebook.com/?id=' attr_writer :target_url def count {share_count: share_count, count_date: count_date} end private def share_count response_hash = JSON.parse(response) response_hash['share']['share_count'] end def count_date Date.today.strftime('%Y-%m-%d(%a)') end def response file = open(request_url) file.read end def request_url fail 'Specify target_url.' if @target_url.nil? BASE_URL + @target_url end end counter = FbShareCounter.new counter.target_url = 'http://www.facebook.com' p counter.count
Facebookトップページの「いいね!」数を取得するプログラムを実行する
インターネットに接続した状態で、コマンドライン上で保存したファイルを指定して実行します。実行結果に「いいね!」数と実行した日付が表示されます。
$ ruby library_fb_share_counter.rb {:share_count=>158668462, :count_date=>"2017-03-15(Wed)"}