В продолжение развития темы
Индикатора статуса Online для соцсети Вконтакте (vk.com) решил выложить скрипт для получения статусов Online сразу нескольких пользователей одним запросом.
Собственно сам скрипт, если id нужных Вам пользователей соцсети Вконтакте хранятся в Вашей БД, выглядит так:
Код:
<table width="500" border="1">
<?php
//подключаем БД
$db=mysqli_connect("localhost","логин","пароль","имя_бд") or die();
$str='';
$res=mysqli_query($db,"SELECT uid FROM vk_name ORDER BY id");
while ($user=mysqli_fetch_array($res)) $str.=$user[0].',';
$url="http://api.vkontakte.ru/method/users.get?uids=".substr($str,0,-1)."&fields=online,last_seen";
$mass=json_decode(file_get_contents($url), true);
for ($i=0; $i<count($mass["response"]); $i++) {
if ($mass["response"][$i]["online"]==1) $online="+";
else $online="";
switch ($mass["response"][$i]["last_seen"]["platform"]){
case 1: $platform="mobile";break;
case 2: $platform="iphone";break;
case 3: $platform="ipad";break;
case 4: $platform="android";break;
case 5: $platform="wphone";break;
case 6: $platform="windows";break;
case 7: $platform="web";break;
}
echo '<tr><td>'.$mass["response"][$i]["first_name"].' '.$mass["response"][$i]["last_name"].'</td><td>'.$online.'</td><td>'.date('H:i:s d.m', $mass["response"][$i]["last_seen"]["time"]).' ('.$platform.')</td>';
}
?>
</table>
Если у Вас нет БД, то скрипт будет выглядеть следующим образом:
Код:
<table width="500" border="1">
<?php
//перечисляем id нужных пользователей
$str='2,55,999,888';
$url="http://api.vkontakte.ru/method/users.get?uids=".$str."&fields=online,last_seen";
$mass=json_decode(file_get_contents($url), true);
for ($i=0; $i<count($mass["response"]); $i++) {
if ($mass["response"][$i]["online"]==1) $online="+";
else $online="";
switch ($mass["response"][$i]["last_seen"]["platform"]){
case 1: $platform="mobile";break;
case 2: $platform="iphone";break;
case 3: $platform="ipad";break;
case 4: $platform="android";break;
case 5: $platform="wphone";break;
case 6: $platform="windows";break;
case 7: $platform="web";break;
}
echo '<tr><td>'.$mass["response"][$i]["first_name"].' '.$mass["response"][$i]["last_name"].'</td><td>'.$online.'</td><td>'.date('H:i:s d.m', $mass["response"][$i]["last_seen"]["time"]).' ('.$platform.')</td>';
}
?>
</table>