Как гласит название, можно ли по-прежнему проверить статус пользователя (онлайн, офлайн, занят...) в Skype после (большого) изменения в его API-сервисе? Теперь раздел разработчиков выглядит очень ограниченным: http://developer.skype.com/
Можно ли получить онлайн-статус пользователя Skype?
Ответ 1
Да, есть.
Есть некоторые URL-адреса, которые могут быть использованы для обнаружения онлайн-статуса.
Это дает текст со статусом (например, в режиме "выезд" или "онлайн" )
http://mystatus.skype.com/SKYPENAME.txt
Это дает вам числовой код состояния skype (см. список ниже)
http://mystatus.skype.com/SKYPENAME.num
Это дает выход xml, включая числовой код состояния и statustext на разных языках
http://mystatus.skype.com/SKYPENAME.xml
Наконец, у вас есть URL-адреса, которые отображают изображения значков состояния:
Замените "smallicon" или "smallclassic" на понравившееся изображение. (Возможные значения: воздушный шар, многоклассовый, малоклассический, малый, mediumicon, dropdown-white, dropdown-trans)
http://mystatus.skype.com/smallicon/SKYPENAME http://mystatus.skype.com/smallclassic/SKYPENAME http://mystatus.skype.com/SKYPENAME
В PHP Лучше всего использовать мою функцию:
/**
* @version: 1.0 (2014-05-13
*
* @param: String $username Skype Username
* @param: [String $lang] Languagecode (possible values 2014-05-13: "en", "fr", "de","ja", "zh-cn", "zh-tw", "pt", "pt-br", "it", "es", "pl" , "pl"
* @param: [String $img_time] Typ im Status Image wich you like to show (Possible values: 2014-05-13: balloon, bigclassic, smallclassic, smallicon, mediumicon, dropdown-white, dropdown-trans)
*
* @return array "num" = Skype Statuscode, "text" = Statustext (Away" ect.), "img_url" url to Statuscode Image
*/
function getSkypeStatus($username, $lang = "de", $img_type = "mediumicon")
{
$url = "http://mystatus.skype.com/".$username.".xml";
$data = @file_get_contents($url);
$status = array();
if($data === false)
{
$status = array("num" =>0,
"text"=>"http error"
);
if(isset($http_response_header)) $status["error_info"] = $http_response_header;
}
else
{
$pattern = '/xml:lang="NUM">(.*)</';
preg_match($pattern,$data, $match);
$status["num"] = $match[1];
$pattern = '/xml:lang="' . $lang .'">(.*)</';
preg_match($pattern,$data, $match);
$status["text"] = $match[1];
$status["img_url"] = "http://mystatus.skype.com/".$img_type."/".$username;
}
return $status;
}
Использование:
$status = getSkypeStatus("YourSkypeName"); // Minimal
$status = getSkypeStatus("YourSkypeName","de"); // with defined language for Statustext
$status = getSkypeStatus("YourSkypeName","de", "mediumicon"); // with specified image
// to display status Icon:
echo '<img src="'.$status["img_url"].'" alt="'.$status["text"].'" title="'.$status["text"].'">';
// or if you like to do you own code for different status
switch($status["num"])
{
case 7:
case 2: echo "You are online"; break;
default: echo "you are offline or in away state";
}
Возможные сообщения о состоянии (на английском языке)
- Ошибка http: ошибка получения данных api, например. проблемы с Интернетом
- connection Неизвестно: недоступно или нет данных. Offline:
- Пользователь не в сети Online: Пользователь в сети:
- Пользователь недоступен Недоступен: пользователь недоступен Не
- Тревога: пользователь не беспокоит (DND)
- Невидимый: пользователь невидим или появляется офлайн
- Skype Me: пользователь находится в Skype Me Режим
Возможные числовые коды состояния:
- case 0 = Неизвестно
- case 1 = Offline
- case 2 = Online
- case 3 = Away
- case 4 = Недоступно
- случай 5 = Не беспокоить
- случай 6 = Невидимый
- case 7 = Skype Me
Я богу эту информацию из следующих тем: fooobar.com/questions/448928/... fooobar.com/questions/448929/...
Ответ 2
ОБНОВЛЕНИЕ 2014-12-19:
Важно знать: проверка статуса skype работает ТОЛЬКО, если пользователь включил "мой статус в Интернете" или "Дайфский статус в Netz veröffentlicht werden" (на немецком языке). В противном случае статус всегда "офлайн"
Ответ 3
Функция не поддерживается с мая 2015 г.
Флажок исчез из настроек Skype.