Возникли трудности с поиском и подпиской, используя твиттер gem и ruby - PullRequest
0 голосов
/ 29 марта 2012

Так что в PHP этот код работает вживую, сделано несколько месяцев назад.

$tweetsToSlippy = $connection->get('http://search.twitter.com/search.json', array('q' => $query, 'since_id' => $since_id))->results;
foreach ($tweetsToSlippy as $tweet) 
{
    $user_id = $tweet->from_user;
    echo "adding $user_id <br>\n";
    $connection->post('friendships/create', array('screen_name' => $user_id));  
}

Я пытаюсь сделать то же самое с Ruby.Я могу ответить, я могу обновить, но у меня нет понимания того, как выполнить то, что я сделал в приведенном выше коде, который выполняет вызов API и получает список Json, а затем извлекает пользователей из него.

def searchAdd
    topics = ['topic1', 'topic2']
    userBank = []
    topics.each do |topic|
        userBank << Twitter.search(topic, :result_type => "recent")
    end
    userBank.each do |user|
    Twitter.follow(user)
        puts user
    end
end

Я потерялся, помогите!

Ответы [ 2 ]

1 голос
/ 07 июля 2012

Twitter.search.results не возвращает Twitter::User объектов, возвращает Twitter::Status объектов.

Если бы я пытался реализовать то, что вы пытаетесь реализовать, я написал бы это так:

require 'twitter'

def search_add
  topics = ['peanut butter', 'jelly']
  search_results = topics.collect do |topic|
    Twitter.search(topic, :result_type => 'recent').results
  end
  search_results.flatten.each do |status|
    puts status.from_user
    Twitter.follow(status.from_user_id)
  end
end
1 голос
/ 29 марта 2012

Давайте посмотрим на ваш код (я его немного упростил)

attr_accessible :client
def initialize 
  client = Twitter::Client.new
end
.... 
def searchAdd(topics)
  [*topics].each do |topic|                                        
    Twitter.search(topic, :result_type => "recent").each do |tweet| 
      client.follow :screen_name => tweet.from_user_id)
      # OR without client ↴
      # Twitter.post('friendships/create',:screen_name => tweet.from_user_id)
    end
  end
end

Что он делает ??

  • Пройдите по каждой теме
  • поиск по последним темам
  • подписаться на пользователей, которые соответствуют теме, которую я хочу

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

Не для поиска в API для использования

...