Скрипты
November 20, 2021
Twitter Backup v1.1
Я уже писал про скрипт, который бэкапит все ваши твитты в базу данных MySQL на вашем сервере. Скрипт замечательно работал несколько лет, но в июне Twitter прекратил поддержку API v1.0 Пришлось переводить скрипт на работу с API v.1.1
Новая версия скрипта под катом.
<? # Twitter API v1.1: Get new twitt # Обновляем ключики $consumer_key = ''; $consumer_secret = ''; $user_token = ''; $user_secret = ''; # Подключаем библиотеку для работы с API. Скачать можно тут: https://github.com/themattharris/tmhOAuth require 'tmhOAuth.php'; $connection = new tmhOAuth(array( 'consumer_key' => $consumer_key, 'consumer_secret' => $consumer_secret, 'user_token' => $user_token, 'user_secret' => $user_secret )); # Получаем данные $http_code = $connection->request('GET', $connection->url('1.1/statuses/user_timeline'), array('count' => '50')); # Разбираем ответ if ($http_code == 200) { $response = $connection->response['response']; $data=json_decode($response,1); $count=count($data); $i=1; while($i<$count) { $id=$data["$i"]["id_str"]; $text=$data["$i"]["text"]; $text=iconv("UTF-8", "Windows-1251//IGNORE", $text); $text=mysql_real_escape_string($text); $timestamp = strtotime($data["$i"]["created_at"]); $time_item = date('d.m.Y H:i', $timestamp); # Определяем откуда был отправлен твитт $via=$data["$i"]["source"]; $via=strip_tags($via); $via=mysql_real_escape_string($via); # Определяем является ли твитт реплаем if(substr($text, 0, 1)=='@') {$replay=1; } else { $replay=0; } # Проверяем, может уже есть в базе. Можно было решить и простановкой уникального индекса по ID. $in_db = mysql_query("SELECT COUNT(id) FROM twitter Where timestamp='".$timestamp."' "); $in_db = mysql_fetch_row($in_db); if($in_db[0]==0) { $query = "INSERT INTO twitter VALUES ('','$id','$text','$time_item','$timestamp','$via','$replay' )"; mysql_query ($query); } $i++; } } # Ошибка, если API вернуло не код 200 else {echo "Error: Twitter API code: $http_code";}
November 20, 2021, 16:33
0 views
0 reactions