PHP + Twitter

PHP*
Twitter сейчас бурно развивается и на то были причины, есть в нем хорошие функции, которые можно использовать и в своих проектах.

На Хабре есть фишка связанная с ним, если в профиле ввести свой Twit-аккаунт, то последнее сообщение будет стоять у вас в статусе — мелочь, а приятно, не нужно делать одно и тоже дважды.

Второй пример, который стал причиной моего углубления в этот вопрос, — это проект, мы его еще не запустили, но как всегда сделали заглушку с формой для сбора адресов. Так вот, чтобы она не выглядела уныло и люди могли следить за тем, что происходит с проектом, я создал аккаунт на твиттере и транслирую сообщения на этот сайт в удобном мне виде. Человек может заходить на сайт и смотреть «что нового», а может и воспользоваться тви, а мне нужно будет вводить текст всего единожды. Тем более люди легко смогут задать вопрос, а я быстро о нем узнаю.

В техническом исполнении все оказалось не сложно.

Для начала подключаем класс twitter.class.php. В нем есть набор стандартных функций:
— создание твита,
— чтение своей ленты, друзей или какого-то конкретного юзера,
— список «фоловингов» и «фоловерсов»,
— сообщения,
— еще что-то.

Расмотрим, как же прочитать свои последние статусы:
require_once("twitter.class.php");
$t = new twitter();
$t->username='username'; // логин и
$t->password='pass'; // пароль нужны не для всех функций

$res = $t->userTimeline(); // Метод возвращает объект класса SimpleXMLElement.
if($res===false){
  echo "ERROR<hr/>";
  echo "<pre>";
  print_r($t->responseInfo);
  echo "</pre>";
}else{
  foreach($res->status as $status){
    echo $status->text .'<p/>';
  }
}


* This source code was highlighted with Source Code Highlighter.


Чтобы узнать какие данные хранятся в массиве возвращаемого класса, можно вывести их все, а можно в подключаемом классе посмотреть с каких .xml страничек парсится инфа и изучить её.
+29
25 января 2009, 20:37
74
navix 14,3

комментарии (17)

+5
quard #
ещё в Zend Framework есть классы для поддержки Twitter'a
0
serkys #
+1
vadbars #
Иногда проще поставить на сайт твиттеровский виджет с их офсайта.
0
navix #
Конечно, если нужно самое простое.
0
bdsoft #
Спасибо, возникает масса идей что можно сделать с этим)
0
navix #
Действительно, переплести свой проект с твитером — довольно интересное, а главное полезное дело. Особенно, если ваша аудитория в большом кол-ве сутуеться на тви.
+1
oowl #
У меня на сайте уже пару месяцев в шапке выводится последний твит.
+4
oowl #
Если упростить мою функцию (убрать кеширование, выбрку чистых твитов и типографику), то получится просто так:

/**
 * Returns twitter last message
 *
 * @param   mixed  $id  ID or Login in Twitter
 * @return  array
 */
function get_twitter_status($id) {

	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, "http://twitter.com/statuses/user_timeline/$id.json?count=1");
	curl_setopt($ch, CURLOPT_HEADER, 0);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	$arr = curl_exec($ch);
	curl_close($ch);
	if (!function_exists('json_decode')) {
		throw new Exception('Does not have expansion Json');
	}
	
	if (!$arr = json_decode($arr)) {
		return NULL;
	}
	if (!isset($arr[0])) {
		return NULL;
	}
	
	return array(
		'time' => time(),
		'id' => $arr[0]->id,
		'login' => $arr[0]->user->screen_name,
		'tweet' => $arr[0]->text
	);
}
–1
enchantner #
Лично я предпочитаю Juick, там все неплохо организовано… А поскольку микрозапись остается на сайте, простом, как три копейки, его легко распарсить и вытащить нужную инфу куда угодно.
+2
rumkin #
«распарсить» — не наши методы!
–2
mihdan #
Очень интересно, правда ничего особого в этом не вижу,
хотя кому-то будут полезным
0
pvp #
«На Хабре есть фишка связанная с ним, если в профиле ввести свой Twit-аккаунт, то последнее сообщение будет стоять у вас в статусе»

В блогосервисе яндекса есть такая же фишка.
0
navix #
Много где есть, а думаю через год будет еще больше, но этот пример самый близкий.
0
kurokikaze #
>В блогосервисе яндекса есть такая же фишка.

Кстати не видел. То есть статусы есть, но импорт из Твиттера не нашёл.
0
pvp #
Просто добавьте рсс-трансляцию из твиттера на я-ру.
0
ajaxtelamonid #
// Чтобы узнать какие данные хранятся в массиве возвращаемого класса, можно вывести их все, а можно в подключаемом классе посмотреть с каких .xml страничек парсится инфа и изучить её.

Классика. :) Класс написали, а что он делает и какие данные возвращает — смотрите исходник класса, дергайте урлы и смотрите что там получаете.

Проще с самого начала зайти на twitter api и написать нужные функции для себя самому. Там же тупо везде file_get_contents — simplexml_load_string — return.
А этот класс, кстати, с багами, в функции получения данных о пользователе, если не ошибаюсь. Давно его ковырял.
0
Methos #
Файла нет.

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