Создать ответ 
Индикаторы статусов Online нескольких пользователей для соцсети Вконтакте (vk.com)
Автор Сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #1
Индикаторы статусов Online нескольких пользователей для соцсети Вконтакте (vk.com)
В продолжение развития темы Индикатора статуса 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>
04.12.2015 22:56:08
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


Пользователи просматривают эту тему: 1 Гость(ей)


LiveInternet
© Copyright 2011-2024 by UsefulScript.ru