2010-08-23 4 views
2

Я пытаюсь заставить highrise api работать с моим проектом. общий noob.Пример API Highrise. help

У меня есть учетная запись, есть мой ключ api, добавленный в мой проект рельсов, как в моем контроллере.

требуют 'Высотный' Высотный :: Base.site = 'http://MYACCOUNT.highrisehq.com' Высотный :: Base.user = 'MyAPI KEY'
@person = Высотный :: Person.find (: все)

на мой взгляд, я могу получить всех людей в списке моих контактов, но не могу понять, как сузить этот список.

, так что если @person = Highrise :: Person.find (: all) вытаскивает все из них, что только вы получите, скажем, ваше имя «larry»?

Я пробовал и просто наклоняю голову вокруг этого.

ответ

3

Я бы использовал @people для переменной экземпляра для того, что у вас есть, так как ваш запрос возвращает несколько записей. Вы можете перебираем эти записи и печати полей на человека следующим образом:

<% @people.each do |person| %> 
    <%= "Got a person: #{person.inspect}" %> 
<% end %> 

Вместо печати каждого человека, вы можете проверить значение вы заботитесь о, возможно puts person if person.name == "larry", но если вы знаете, что вы хотите «Larry "вверх, тогда вы хотите запросить Highrise только для одной записи. Ознакомьтесь с List by search criteria в документах Highrise API. Я не использовал его, но я бы попробовал найти с вашими критериями /people/search.xml?criteria[email][email protected], которые должны возвращать коллекцию результатов, тогда, если вы найдете конкретный larry, который вы хотите, у вас есть идентификатор пользователя, и вы можете использовать действие «показать» API, например /people/#{id}.xml (перейдите в идентификатор larry's), чтобы запросить единственную запись.

+0

Энди, я могу вытащить все записи. Часть, о которой я думаю, действительно понимаю, - это вторая часть (я знаю, что вы не использовали API) Где и как я буду использовать /people/search.xml?criteria[email][email protected] (PART в моем контроллере) Это та часть, которую мне не хватает. @person = Highrise :: Person.find (: all) Первая часть была огромной помощью - Спасибо. Я не могу найти действительно хорошую информацию по этому вопросу. Larry – Fresh

+0

Вы должны сгенерировать запрос HTTP Get на сервер Highrise. Зайдите в [Rest Client] (http://github.com/adamwiggins/rest-client) для Ruby. API выглядит так, как будто он возвращает XML. Это означает, что вам, вероятно, также понадобится XML-парсер. Я бы посмотрел на [Nokogiri] (http://nokogiri.org/). Генерирование запросов и обработка ответов - нетривиальные задачи, но вам будет полезно изучить эти навыки, так как большинство API работают таким образом, и, скорее всего, вы будете работать с большим количеством API в другом проекте. Возможно, вы можете создать оболочку Ruby-библиотеки, если она уже не существует. –

4

Так я получил мой ответ
в моем контроллере

@tag = params[:tag] 
@person = Highrise::Person.find(:all, :from => "/people/search.xml?term=#{@tag}") 


THanks Andy for your help . set me on the right path 
+0

Теперь я не могу понять, как обновить запись. I can not использование @ person.save Lost – Fresh