MultiJson::DecodeError

witam
prawdopodobnie po updejtowaniu gema fgraph, przy próbie połączenia z facebookiem, zaczął pojawiać się błąd:

[quote]756: unexpected token at ‘access_token=xxxxxxxxxx’

Rails.root: /home/costam/www/costam-development
Application Trace | Framework Trace | Full Trace

json (1.6.5) lib/json/common.rb:148:in parse' json (1.6.5) lib/json/common.rb:148:inparse’
multi_json (1.0.4) lib/multi_json/engines/json_common.rb:9:in decode' multi_json (1.0.4) lib/multi_json.rb:76:indecode’
httparty (0.8.1) lib/httparty/parser.rb:116:in json' httparty (0.8.1) lib/httparty/parser.rb:136:insend’
httparty (0.8.1) lib/httparty/parser.rb:136:in parse_supported_format' httparty (0.8.1) lib/httparty/parser.rb:103:inparse’
httparty (0.8.1) lib/httparty/parser.rb:66:in call' httparty (0.8.1) lib/httparty/request.rb:222:inparse_response’
httparty (0.8.1) lib/httparty/request.rb:192:in handle_response' httparty (0.8.1) lib/httparty/request.rb:75:inperform’
httparty (0.8.1) lib/httparty.rb:391:in perform_request' httparty (0.8.1) lib/httparty.rb:343:inget’
vendor/plugins/fgraph/lib/fgraph.rb:311:in perform_get' vendor/plugins/fgraph/lib/fgraph.rb:213:inoauth_access_token’
vendor/plugins/fgraph/lib/fgraph/rails/fgraph_helper.rb:32:in fgraph_session_cookies' vendor/plugins/fgraph/lib/fgraph/rails/fgraph_helper.rb:15:infgraph_session’
vendor/plugins/fgraph/lib/fgraph/rails/fgraph_helper.rb:69:in `fgraph_logged_in?’[/quote]
jakieś sugestie ?

gem 'yajl-ruby', require: 'yajl/json_gem'

Chociaż pewien nie jestem czy w Twoim przypadku to pomoże. Miałem ostatnio problem z gemem JSON, i zamienienie go na powyższy zadziałało. Dodanie do Gemfile powyższej linijki, powoduje że jest preferowany przez multijson. Problem jest taki, że gem json stara się ściśle przestrzegać specyfikacji JSON, czyli np. “json” nie jest poprawnym obiektem, a na przykład {value: “json”} jest, czy [“json”]. To jest coś nowego, poprzednie wersje gemu json były bardziej libaralne.

niestety zmienił się tylko sposób wyświetlania błędu

[quote]lexical error: invalid char in json text.
access_token=xxxxxxxxxxx
(right here) ------^

multi_json (1.0.4) lib/multi_json/engines/yajl.rb:10:in parse' multi_json (1.0.4) lib/multi_json/engines/yajl.rb:10:indecode’
multi_json (1.0.4) lib/multi_json.rb:76:in decode' httparty (0.8.1) lib/httparty/parser.rb:116:injson’
httparty (0.8.1) lib/httparty/parser.rb:136:in `send’[/quote]
próbowałem railsów od 3.0.3 do 3.0.9 jeśli to coś wnosi.
chyba trzeba będzie spróbować innego gemu do facebooka

pomogło tymczasowe rozwiązanie, czyli zjechanie do httparty 0.7.7 :slight_smile:

Właśnie też się na coś podobnego naciąłem. curl’em wysyłałem zapytania do własnego API używając JSONa i dostawałem podobnym wyjątkiem w twarz. JSON w zapytaniu taki: “{email: ‘test@test.com’}”. Dlaczego? Okazuje się że od 3.1 RoR wymaga JSONa zgodnego z RFC. Czyli klucze w “” oraz stringi otoczone “” zamiast w ‘’. :slight_smile: Więcej info http://json.org