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

Я хочу добавить определенный твит на мою страницу, например, http://twitter.com/myusername/status/123465678 Я также хотел бы иметь возможность показывать последние из моих твитов, которые имеют определенный тег.

Я пытался сделать это с помощью библиотеки API CodeIgniter Twitter API, но мне нужно зарегистрировать свое приложение в Oauth. Это похоже на излишнее использование одного твита на странице.

Я бы предпочел сделать это с PHP, но, вероятно, придется согласиться на версию jquery. Кто-нибудь может указать мне на сценарий, который может сделать это?

спасибо

Ответы [ 5 ]

1 голос
/ 15 ноября 2010
$.ajax({
  url: 'http://api.twitter.com/1/statuses/show/4190230693289984.json',
  dataType: 'jsonp',
  data: null,
  success: function (data) {
    // Do something with the data here.
    // I am just logging the object to the console.
    console.log(data);
  }
});

Приведенное выше извлекает объект json для отдельного твита (http://twitter.com/CERN/status/4190230693289984). Обратите внимание на использование 'jsonp', чтобы браузер клиента мог получить доступ к другому домену из вашего. Для получения дополнительной информации см. http://api.jquery.com/jQuery.ajax/.

1 голос
/ 02 ноября 2010

Разве вы не можете просто разобрать общедоступный RSS?

1 голос
/ 06 октября 2010

Я сделал это один раз, используя curl, возможно, вам придется сначала включить его в своем php.ini

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

<?php
class TwitterGrub{
    private $user;
    private $password;

    function __construct($user, $password) {
        $this->user = $user;
        $this->password = $password;
    }

    function setUser($user) {
        $this->user = $user;
    }

    // same for password


    function twitterCapture() {  


       $ch = curl_init("https://twitter.com/statuses/user_timeline.xml");  
       curl_setopt($ch, CURLOPT_HEADER, 1);  
       curl_setopt($ch,CURLOPT_TIMEOUT, 30);  
       curl_setopt($ch,CURLOPT_USERPWD,$this->user . ":" . $this->password);  
       curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);  
       curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);  
       curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);  
       $result=curl_exec ($ch);  
       $data = strstr($result, '<?');  

       $xml = new SimpleXMLElement($data);  

      return $xml;  
}   


function twitterDisplay($twitNum = 2){
    $xml = $this->twitterCapture(); 

    for($i= 0; $i<$twitNum; $i++){ 
        echo   $xml->status[$i]->text;    
    }
}
1 голос
/ 06 октября 2010

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

$url = "http://twitter.com/yourtwittername";
$h = curl_init($url);
curl_setopt($h,CURLOPT_POST,TRUE);
curl_setopt($h,CURLOPT_POSTFIELDS,$params);
curl_setopt($h,CURLOPT_RETURNTRANSFER,TRUE);
curl_setopt($h,CURLOPT_VERBOSE,1);
curl_setopt($h,CURLOPT_HTTPHEADER,array('Expect:'));
$response = json_decode(curl_exec($h));
$results = curl_getinfo($h); # to check for http response, etc.
curl_close($h);
// additional processing on response ...
0 голосов
/ 06 октября 2010

Вы можете использовать чистый JavaScript, см. http://twitter.com/goodies/widget_profile для виджета профиля в твиттере. Затем настройте его так, чтобы отображался только один твит (или посмотрите на его код js: D).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...