自分があまりQuestionを利用しないのでこのAPIの需要が分かっていないんですが…
- Questionsの取得には「user_questions」又は「friends_questions」のpermissionが必要
- /USER_ID/questionsでUSER_IDのQuestion一覧を取得
- /QUESTION_ID/optionsで選擇肢を取得(この情報は/USER_ID/questionsに含まれているけど。。。)
- /QUESTION_OPTION_ID/votesで投票したユーザの一覧を取得
試してみました、
require 'haml' require 'koala' require 'omniauth' require 'rubygems' require 'sinatra' APP_ID = "212005055538084" APP_SECRET = "hogehoge" enable :sessions use OmniAuth::Strategies::Facebook, APP_ID, APP_SECRET, :scope => 'user_questions' get '/auth/facebook/callback' do auth_hash = request.env["omniauth.auth"] uid = auth_hash["uid"] token = auth_hash["credentials"]["token"] graph = Koala::Facebook::API.new token result = graph.batch do |api| # 毎回:batch_args => ...て書くの気持ち悪いので特異メソッド定義 def api.get_connects(id, conn, name="") self.get_connections( id, conn, {}, :batch_args => { :name => name, :omit_response_on_success => false}) end api.get_connects uid, "questions", "get-qs" api.get_connects "{result=get-qs:$.data[0].id}", "options", "get-ops" api.get_connects "{result=get-ops:$.data[0].id}", "votes" api.get_connects "{result=get-ops:$.data[1].id}", "votes" api.get_connects "{result=get-ops:$.data[2].id}", "votes" end haml '%div= result.to_s', :locals => { :result => result } endこんなjson返ってきました。
[ [ { "id": "170514669705292", "from": { "name": "Sinjin Ra", "id": "100002402797320" }, "question": "今年の流行語は?", "created_time": "2011-10-30T12:25:51+0000", "updated_time": "2011-10-30T12:25:51+0000", "options": { "data": [ { "id": "267486769961495", "from": { "name": "Sinjin Ra", "id": "100002402797320" }, "name": "トゥットゥルー", "votes": 3, "created_time": "2011-10-30T12:25:50+0000" }, { "id": "234349516624548", "from": { "name": "Sinjin Ra", "id": "100002402797320" }, "name": "ドラマチックこそ、 人生です。", "votes": 2, "created_time": "2011-10-30T12:25:48+0000" }, { "id": "309092772438842", "from": { "name": "Sinjin Ra", "id": "100002402797320" }, "name": "ほびろん", "votes": 2, "created_time": "2011-10-30T12:25:49+0000" } ], "paging": { ... ..]
Herokuで試してみました、初Herokuです、
デプロイ(git push)したらアプリが動いているって画期的です、
…久々にClojure触りたくなってきました(HerokuはClojureもサポート)
0 件のコメント:
コメントを投稿