Проблемы с местоположением и OAuth при использовании API поиска в Twitter - PullRequest
0 голосов
/ 04 декабря 2011

Я точно скажу свою домашнюю работу: добавьте возможность поиска в твиттере на сайт.Поиск должен автоматически обновляться каждые 20 секунд и выполнять поиск самых последних упоминаний хеш-тега «# EN0700».

Твиты должны отображаться в списке с указанием даты, имени пользователя автора в твиттере и данных о местонахождении твита (где твит находится в твиттере).Я попытался использовать https://api.twitter.com/1/geo/search.json?query=Twitter%20HQ, как в примере http://dev.twitter.com/docs/api/1/get/geo/search, но он не отображает результат определения местоположения.Является ли мой URL правильным?

Другое дело, что если я использую http://api.twitter.com/1/users/search.json?q=Twitter%20API,, я получу:

"{"error":"Could not authenticate you.","request":"/1/users/search.json?q=EN0745"}"

, хотя я зарегистрировал свою заявку в oAUTH.Спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 04 декабря 2011

Вам, вероятно, лучше всего использовать библиотеку PHP для упрощения работы.Вы можете найти их здесь на сайте разработчиков Твиттера.

0 голосов
/ 04 декабря 2011

Вы можете использовать мой класс для подписания запросов https://github.com/andreyknupp/Twitter

<?php
      spl_autoload_register ( function ( $class ) {
           require_once sprintf ( '%s.php' , $class ) ;
      } ) ;

      $URL = 'https://api.twitter.com/1/users/search.json';
      $Data = Array ( 'q' => 'Search' ) ;

      $Authentication = new \Twitter\TwitterAuthentication();

      $Authentication->setConsumerKey ( 'UExmB6GoxftjZqdngw' );
      $Authentication->setConsumerSecret ( '1yUvMAnrFiu86vCdhwAqM5ZHsgXRVyNhRdUDxeo' );
      $Authentication->setAccessToken ( '2660353-PjccZS0nO28zaV0xaxR2UBklZR0nkjjso2wmLa' );
      $Authentication->setAccessTokenSecret ( 'DWwLG3RFt1drU0qRc4PHu0wdlmVks08BDM' );

      $OAuth = new Twitter\TwitterOAuthentication( $Authentication );
      $OAuth->setSignatureURL ( $URL . '?' . http_build_query ( $Data , false , '&' ) ) ;
      $OAuth->setSignatureMethod( 'GET' ) ; 

      $curl = curl_init();
      curl_setopt( $curl , CURLOPT_URL ,  $URL . '?' . http_build_query ( $Data , false , '&' ) ) ;
      curl_setopt( $curl , CURLOPT_HEADER , false ) ;
      curl_setopt( $curl , CURLOPT_HTTPHEADER , Array ( $OAuth->buildAuthorization( $Data ) ) ) ;
      curl_setopt( $curl , CURLOPT_RETURNTRANSFER , true ) ;
      curl_setopt( $curl , CURLOPT_SSL_VERIFYPEER , false );

      $response = json_decode ( curl_exec ( $curl ) ) ;
      print_r ( $response ) ;
...