Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 尝试使用考拉宝石扩展Facebook oauth代币_Ruby On Rails_Ruby On Rails 3_Json_Facebook Graph Api_Koala - Fatal编程技术网

Ruby on rails 尝试使用考拉宝石扩展Facebook oauth代币

Ruby on rails 尝试使用考拉宝石扩展Facebook oauth代币,ruby-on-rails,ruby-on-rails-3,json,facebook-graph-api,koala,Ruby On Rails,Ruby On Rails 3,Json,Facebook Graph Api,Koala,关于: 我的代码如下所示: 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 }) 虽然返回值包含扩

关于:


我的代码如下所示:

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 })
虽然返回值包含扩展令牌,但它抛出了MultiJson::DecodeError

MultiJson::DecodeError: 387: unexpected token at 'access_token=long-lived_token&expires=5184000]'
from /usr/local/rvm/gems/ruby-1.9.2-p136@dotcloud/gems/json-1.6.1/lib/json/common.rb:148:in `parse'
from /usr/local/rvm/gems/ruby-1.9.2-p136@dotcloud/gems/json-1.6.1/lib/json/common.rb:148:in `parse'
from /usr/local/rvm/gems/ruby-1.9.2-p136@dotcloud/gems/multi_json-1.0.3/lib/multi_json/engines/json_gem.rb:13:in `decode'
from /usr/local/rvm/gems/ruby-1.9.2-p136@dotcloud/gems/multi_json-1.0.3/lib/multi_json.rb:65:in `decode'
from /usr/local/rvm/gems/ruby-1.9.2-p136@dotcloud/gems/koala-1.3.0/lib/koala/api.rb:61:in `api'
from /usr/local/rvm/gems/ruby-1.9.2-p136@dotcloud/gems/koala-1.3.0/lib/koala/api/graph_api.rb:421:in `graph_call'
from (irb):7
from /usr/local/rvm/gems/ruby-1.9.2-p136@dotcloud/gems/railties-3.1.3/lib/rails/commands/console.rb:45:in `start'
from /usr/local/rvm/gems/ruby-1.9.2-p136@dotcloud/gems/railties-3.1.3/lib/rails/commands/console.rb:8:in `start'
from /usr/local/rvm/gems/ruby-1.9.2-p136@dotcloud/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>'

不确定它是防火墙还是什么?

使用OAuth
exchange\u access\u token\u info
方法:

oauth = Koala::Facebook::OAuth.new("consumer_token", "consumer_secret")
oauth.exchange_access_token_info("auth_token")
顺便说一句,我也犯了一个错误,你是按自己的方式做的。问题是考拉希望响应的主体是JSON格式,但在这种特殊情况下,它实际上是URL(查询字符串)格式的名称/值对,例如:

access_token=[...]&expires=[...]

这些变量“consumer\u token”、“consumer\u secret”和“auth\u token”究竟指的是什么?他们都没有提到李约翰在他的问题中提供的任何东西。
access_token=[...]&expires=[...]