ルビー言語 API
require 'open-uri'
require 'json'
# 指定したURLのFacebookいいね数を取得するクラス
class FbShareCounter
# FacebookグラフAPIのURL
BASE_URL = 'http://graph.facebook.com/?id='
# target_urlにいいね数をカウントする対象URLを指定
def initialize(target_url)
@request_url = BASE_URL + target_url
end
def count
# グラフAPIにアクセス
response = open(@request_url).read
# テキストをハッシュに変換
hash = JSON.parse(response)
# いいね数を取得
hash['share']['share_count']
end
end
counter = FbShareCounter.new('http://gihyo.jp')
p counter.count
というソースコードで、コマンドプロンプトで実行した結果、
C:/samples/samples/09_03/like_counter.rb:16:in `initialize': Invalid argument @ rb_sysopen - http://graph.facebook.com/?id=http://gihyo.jp (Errno::EINVAL)
from C:/samples/samples/09_03/like_counter.rb:16:in `open'
from C:/samples/samples/09_03/like_counter.rb:16:in `count'
from C:/samples/samples/09_03/like_counter.rb:27:in `<main>'
という結果が帰ってくるのですが、なぜでしょうか?教えていただけると幸いです。
0