2010-04-21 3 views
1

как я могу захватить ответ от twitter.com? Чтобы все прошло нормально?как я могу захватить ответ от twitter.com? (ruby + twitter gem)

Я использую рубин и ruby twitter gem и мой код, в основном, как этот

oauth = Twitter::OAuth.new('consumer token', 'consumer secret') 
oauth.authorize_from_access('access token', 'access secret') 

client = Twitter::Base.new(oauth) 
client.update('Heeeyyyyoooo from Twitter Gem!') 
+0

Есть ли способ смоделировать/текст, что обновление не пошло хорошо? – Radek

ответ

2

Обновление щебет метод ИПН будет отправить обратно ответ, который позволит вам знать, если все прошло нормально. Он может отвечать как json, так и xml, я уверен, что твиттер-камень использует тот или иной по умолчанию. Вам нужно сохранить возвращаемое значение переменной и проанализировать ее, если у вас есть идентификатор статуса, тогда он сработал. Попробуйте использовать токен или секрет, чтобы проверить, что происходит, когда это происходит. Я хотел бы предложить изменить свой последнюю строку в этой

ret = client.update('Heeeyyyyoooo from Twitter Gem!') 

, а затем добавить эту строку ниже, чтобы проверить, что вы вернулись

puts ret.inspect 

или

logger.info ret.inspect 

или ваш выбор лесозаготовок метод

[Редактировать] Похоже, что щебетать драгоценный камень скрывает твит ter api от вас, анализирует его для вас и просто возвращает вам соответствующие биты. в случае метода обновления он просто возвращает вам идентификатор вашего нового твита. Вы можете просмотреть идентификатор, как этого

puts ret.id 

Если вы используете другую библиотеку, чтобы подключиться к API твиттера и нужно анализировать XML или JSON ответы, то тогда остальная часть этого ответа может быть то, что вы ищете. [/ Edit]

Если вы не используете драгоценный камень, который обрабатывает ответы twitter api для вас, вам нужно будет использовать что-то, чтобы разобрать ответы twitter api в данные, с которыми вы можете что-то сделать. Есть куча способов сделать это в зависимости от того, какой формат вы хотите, чтобы разобрать (JSON или XML)

Мои предпочтения:

Вот больше информации о том, щебет обновления апи метод возвращает: http://apiwiki.twitter.com/Twitter-REST-API-Method:-statuses%C2%A0update

+0

@imightbeinatree: отличный ответ !. 'если у вас есть идентификатор статуса, тогда он сработал' - это в основном то, что я хотел знать. Я имею в переменной ret что-то вроде '" id "=> 12555654648,' Я думаю, это то, что я ищу. Так что, если id существует и не является пустым, все идет хорошо, я прав? – Radek

+0

на самом деле щебет драгоценный камень довольно хорошо. если я использую 'ret = client.update ('Heeeyyyyoooo из Twitter Gem!')', тогда я могу сделать 'puts ret.id'. отлично, не так ли. @imightbeinatree вы могли бы добавить это в свой ответ? – Radek

+0

, если возвращение, которое вы получаете от драгоценного камня щебета, - это просто «id» => 1223123, тогда драгоценный камень несколько скрывает реальный отклик от twitter api от вас, разбирает его для вас и просто возвращает вам соответствующие биты. я отредактирую свой ответ выше, чтобы он это сказал. –

1

Это сработало для меня ...

begin 
    resp = Twitter.update(params[:message]) 
rescue Exception => e 
    # e.message contains the twitter response  
end 
Смежные вопросы