Скрипты
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
0 replies
0 reposts