Как выполнить поисковый запрос с помощью Services_Twitter? - PullRequest
0 голосов
/ 17 сентября 2010

Я пытаюсь выполнить поиск в Твиттере, используя пакет PEAR Services_Twitter.К сожалению, это только возвращает массив идентификаторов состояния, например (var_dump) :

object(stdClass)#88 (2) {
  ["statuses"]=>
  array(11) {
    [0]=>
    int(49497593539)
    [1]=>
    int(49497593851)
    [2]=>
    int(49497598001)
    [3]=>
    int(49497599055)
    [4]=>
    int(49497599597)
    [5]=>
    int(49497600733)
    [6]=>
    int(49497602607)
    [7]=>
    int(49497607031)
    [8]=>
    int(49497607453)
    [9]=>
    int(49497609577)
    [10]=>
    int(49497610605)
  }
  ["created_in"]=>
  float(0.008847)
}

Используемый мной сценарий похож на этот сценарий тестирования, который я написал:

<?php
//$oAuth = new HTTP_OAuth_Consumer( /** Supply oAuth details here **/ );
$Twitter = new Services_Twitter();
//$Twitter->setOAuth($oAuth);
try {
    $Response = $Twitter->search(array(
      "q"   => "#FF -RT OR #FollowFriday -RT",
      "rpp" => 10,
      "since_id"  => 23982086000,
      "result_type" => "recent"
    ));
    var_dump($Response);
  } catch (Exception $e) {
    fwrite(STDERR, $e->getMessage());
  }
?>

Поскольку я хочу просканировать твиты на наличие определенных слов и узнать, когда они были опубликованы и кем, мне нужно будет запросить все эти статусы один за другим.Но в соответствии с примером ответа в документации API Twitter они уже возвращают всю необходимую информацию о твитах (что довольно очевидно).

Итак, вопрос: как я могу получить доступэту информацию, используя Services_Twitter?

С уважением,

Арно

Ответы [ 2 ]

3 голосов
/ 17 сентября 2010

Итак, как я сказал, ->search() заключено в Services_Twitter::__call().

Но вот неправильное понимание!

Два поиска:

Это сбивает с толку, поскольку search.twitter.com возвращает результаты так, как вы ожидаете, а другой метод API - только идентификаторы состояния.

По какой-то причине только при поиске трендов search.twitter.com используется.В противном случае это методы API.Если вы хотите помочь, пожалуйста, откройте заявку на PEAR, и я могу попытаться реализовать это для вас.

Быстрое исправление для вас это скрипт:

<?php
$uri  = 'http://search.twitter.com/search.json?';
$uri .= http_build_query(
    array(
        "q"           => "#FF -RT OR #FollowFriday -RT",
        "rpp"         => 10,
        "since_id"    => 23982086000,
        "result_type" => "recent"
));

$response = file_get_contents($uri);
if ($response === false) {
    fwrite(STDERR, "Could not fetch search result.");
    exit(1);
}

$data = json_decode($response);
var_dump($data);
0 голосов
/ 17 сентября 2010

Используете ли вы пользовательский Services_Twitter, я только что выполнил поиск по классу через документацию Pear и не смог найти функцию search.Тем не менее, похоже, что большинство возвращаемых значений для этого класса - это объект simple_xml .Учитывая, что я бы посмотрел там документацию и увидел, как вы можете извлечь эти данные.Это также помогло бы посмотреть, как Twitter возвращает ответ в формате XML.

...