W nawiązaniu do:Próbując rozszerzyć Facebook tokenu OAuth użyciu Koala gem
http://developers.facebook.com/roadmap/offline-access-removal/#extend_token
Mój kod wygląda mniej więcej tak:
fb = Koala::Facebook::API.new(access_token)
fb.graph_call("/oauth/access_token", {"client_id" => app_id, "client_secret" => app_secret, "grant_type" => "fb_exchange_token", "fb_exchange_token" => access_token })
Mimo powrotu wartość zawiera rozszerzony token, ale rzuca Mult iJson :: DecodeError
MultiJson::DecodeError: 387: unexpected token at 'access_token=long-lived_token&expires=5184000]'
from /usr/local/rvm/gems/[email protected]/gems/json-1.6.1/lib/json/common.rb:148:in `parse'
from /usr/local/rvm/gems/[email protected]/gems/json-1.6.1/lib/json/common.rb:148:in `parse'
from /usr/local/rvm/gems/[email protected]/gems/multi_json-1.0.3/lib/multi_json/engines/json_gem.rb:13:in `decode'
from /usr/local/rvm/gems/[email protected]/gems/multi_json-1.0.3/lib/multi_json.rb:65:in `decode'
from /usr/local/rvm/gems/[email protected]/gems/koala-1.3.0/lib/koala/api.rb:61:in `api'
from /usr/local/rvm/gems/[email protected]/gems/koala-1.3.0/lib/koala/api/graph_api.rb:421:in `graph_call'
from (irb):7
from /usr/local/rvm/gems/[email protected]/gems/railties-3.1.3/lib/rails/commands/console.rb:45:in `start'
from /usr/local/rvm/gems/[email protected]/gems/railties-3.1.3/lib/rails/commands/console.rb:8:in `start'
from /usr/local/rvm/gems/[email protected]/gems/railties-3.1.3/lib/rails/commands.rb:40:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
Podejrzewam zakończenie ]
który jest przyczyną błędu. Nie jestem pewien, czy jest to błąd na Facebooku, czy niewłaściwa obsługa z mojej strony. Doceń, jeśli ktoś może mi pomóc. Podziękować!
Próbowałem też zamiast tego używać Net :: HTTP.get (uri). Ale dostałem poniżej błąd.
Errno::ECONNRESET: Connection reset by peer
from /usr/local/rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/net/protocol.rb:135:in `read_nonblock'
from /usr/local/rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/net/protocol.rb:135:in `rbuf_fill'
from /usr/local/rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/net/protocol.rb:116:in `readuntil'
from /usr/local/rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/net/protocol.rb:126:in `readline'
from /usr/local/rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/net/http.rb:2211:in `read_status_line'
from /usr/local/rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/net/http.rb:2200:in `read_new'
from /usr/local/rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/net/http.rb:1183:in `transport_request'
from /usr/local/rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/net/http.rb:1169:in `request'
from /usr/local/rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/net/http.rb:1073:in `request_get'
from /usr/local/rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/net/http.rb:394:in `block in get_response'
from /usr/local/rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/net/http.rb:627:in `start'
from /usr/local/rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/net/http.rb:393:in `get_response'
from /usr/local/rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/net/http.rb:370:in `get'
from (irb):11
from /usr/local/rvm/gems/[email protected]/gems/railties-3.1.3/lib/rails/commands/console.rb:45:in `start'
from /usr/local/rvm/gems/[email protected]/gems/railties-3.1.3/lib/rails/commands/console.rb:8:in `start'
from /usr/local/rvm/gems/[email protected]/gems/railties-3.1.3/lib/rails/commands.rb:40:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
Nie masz pewności, czy jest to zapora sieciowa, czy coś?
rozwiązać również tutaj: https : //github.com/arsduo/koala/issues/224 –
Co dokładnie oznaczają te zmienne "consumer_token", "consumer_secret" i "auth_token"? Żadne z nich nie odnosi się do niczego, co John Lee zapewnia w swoim pytaniu. – Christoffer