Как я могу использовать селекторы полей в геме LinkedIn? - PullRequest
1 голос
/ 19 февраля 2012

Я пытался использовать гем LinkedIn (0.3.6) для поиска.Я могу успешно проходить проверку подлинности и выполнять поиск только по ключевым словам, но хочу использовать селекторы полей, чтобы мои результаты содержали не только идентификатор, имя, фамилию.

Мне не удалось выполнить то, что указано в спецификации

 fields = [{:people => [:id, :first_name, :last_name, :public_profile_url, :picture_url]}, :num_results]
        client.search(:first_name => 'Giliardi', :last_name => 'Pires', :fields => fields)

Кто-нибудь смог заставить это работать?

1 Ответ

0 голосов
/ 26 февраля 2012

Кажется, что gem client.search не соответствует github client.search ... и спецификация основана на github client.search. И, честно говоря, я не могу понять, как заставить его работать с поиском Gem. Они не включают спецификацию для поиска в примере Gem, представленном в api_spec.rb (без search_spec), дает 404: client.search(:first_name => "Javan", :fields => ["num_results", "total"])

Мое предложение было бы построить гем из источника github и использовать селекторы.

Gem:

def search(options={})
      path = "/people-search"
  options = { :keywords => options } if options.is_a?(String)

  if fields = options.delete(:fields)
    path +=":(#{fields.map{ |f| f.to_s.gsub("_","-") }.join(',')})"
  end

  options = format_options_for_query(options)

  result_json = get(to_uri(path, options))
  Mash.from_json(result_json)
end

GitHub:

def search(options={})
  path = "/people-search"

  if options.is_a?(Hash)
    fields = options.delete(:fields)
    path += field_selector(fields) if fields
    puts path
  end

  options = { :keywords => options } if options.is_a?(String)
  options = format_options_for_query(options)

  result_json = get(to_uri(path, options))

  Mash.from_json(result_json)
end
...