2012-01-17 4 views
1

FacebookのREST APIに対する10個のクエリを送信します。入力ハッシュとして、以下でコアラのfql_multiquery関数を介してREST APIを呼び出す:Ruby Koala fql_multiqueryパーサーエラー

{"query11"=>"SELECT page_id, name, fan_count, page_url FROM page WHERE name='Wyoming Area Sec Center' ORDER BY fan_count DESC LIMIT 1", "query12"=>"SELECT page_id, name, fan_count, page_url FROM page WHERE name='Wyoming Area High School Exeter PA' ORDER BY fan_count DESC LIMIT 1", ...} 

クエリすべてがうまく形成されたようですが、コアラを返します。

Koala::Facebook::APIError: 601: Parser error: unexpected 's' at position 73. 

誰もが前に、このエラーコードに遭遇しますか?

+0

oopsのようにエスケープすることで解決できます。これは問題です: { "query18" => "page_idのを選択、名前、fan_count、PAGE_URLページから名前= '知事のアカデミー' ORDER fan_count DESCのLIMIT 1 BY"} 知事のアカデミーでアポストロフィをエスケープです。これは、FQLクエリ入力をstr.gsub(/ \\ | '/){| c |のようなもので単純にエスケープすることで解決できます。 "\\#{c}"} – galarant

答えて

1

oops!これは問題です:

{"query18"=>"SELECT page_id, name, fan_count, page_url FROM page WHERE name='Governor's Academy' ORDER BY fan_count DESC LIMIT 1"} 

ガバナーズアカデミーのアポストロフィはエスケープされていません。これは、FQLクエリ入力を単純に

str.gsub(/\\|'/) { |c| "\\#{c}" } 
+0

正規表現について説明できますか?私は同じ問題に直面しています。余分なものを使ってアポストロフィを脱出しても、それはまだ機能しません。ありがとう! –

関連する問題