0

FreebaseAPIからトピック情報を取得しようとして立ち往生しています。とにかく、これは主にRubyFaradayの質問です。

だから私は次のパスでリクエストします: https ://www.googleapis.com/freebase/v1/topic/m/02676m4?limit = 20&filter = / film / film_series / films_in_series&filter = / common / topic / article

&filterが2つあることに注意してください。これは私のWebブラウザを使用して問題なく動作します。ただし、Rubyで次のいずれかを実行する場合:

response = Faraday.get 'https://www.googleapis.com/freebase/v1/topic/m/02676m4', {
        'limit' => 20,
        'filter' => ['/film/film_series/films_in_series', '/common/topic/article'],
        'key' => 'my_key_here'
    }, { 'Accept' => self.Headers_Accept }

また...

response = Faraday.get 'https://www.googleapis.com/freebase/v1/topic/m/02676m4', {
        'limit' => 20,
        'filter' => '/film/film_series/films_in_series&filter=/common/topic/article',
        'key' => 'my_key_here'
    }, { 'Accept' => self.Headers_Accept }

また...

response = Faraday.get 'https://www.googleapis.com/freebase/v1/topic/m/02676m4?limit=20&filter=/film/film_series/films_in_series&filter=/common/topic/article&key=my_key_here', {}, { 'Accept' => self.Headers_Accept }

その後、フィルターはAPIによって無視されます。私は自分のトピックに関するすべての情報で大きな反応を得ています。

フィルタを使用せずにクエリを実行すると、結果を複製できます: https ://www.googleapis.com/freebase/v1/topic/m/02676m4?limit=20

質問: ファラデーからこの問題が発生する理由は誰でも思い付くことができますが、ブラウザーから直接アクセスする場合は考えられません。

追加のヒント:ファラデーリクエストでフィルターを1つ だけ使用する場合は、問題なく機能します。しかし、私は本当に複数のフィルターを使用する必要があります。

FreebaseトピックAPI: http ://wiki.freebase.com/wiki/Topic_API

ありがとう!

4

1 に答える 1

0

これは、このプル リクエストで修正されたファラデーのバグによく似ています: https://github.com/technoweenie/faraday/pull/199

于 2012-12-28T18:53:38.453 に答える