As the title says, is it still possible to check a user\'s status (online, offline, busy...) on Skype after the (big) change in its API service? Developers section seems very ve
Yes there is.
There are some urls wich can be used to detect the online status.
This gives a text with the statusname (e.g. away or online)
http://mystatus.skype.com/SKYPENAME.txt
This gives you a numeric skype statuscode (see list below)
http://mystatus.skype.com/SKYPENAME.num
This gives an xml output including numeric statuscode and statustext in diffent languages
http://mystatus.skype.com/SKYPENAME.xml
At last you have urls which show diffent status icon images:
Replace "smallicon" or "smallclassic" with the image you like. (Possible values: balloon, bigclassic, smallclassic, smallicon, mediumicon, dropdown-white, dropdown-trans)
http://mystatus.skype.com/smallicon/SKYPENAME http://mystatus.skype.com/smallclassic/SKYPENAME http://mystatus.skype.com/SKYPENAME
In PHP The best way is to use my function:
/**
* @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;
}
Usage:
$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";
}
Possible Status messages (in english) are
Possible numeric Statuscodes:
I god these informations from following threads: https://stackoverflow.com/a/16320950/2377961 https://stackoverflow.com/a/6426418/2377961
The checkbox disappeared from Skype Options.
Source: https://support.skype.com/en/faq/FA605/how-do-i-set-up-the-skype-button-to-show-my-status-on-the-web-in-skype-for-windows-desktop
UPDATE 2014-12-19:
It is important to know: checking a skype status works ONLY if the user has enabled "my status in internet" or "Mein Status darf im Netz veröffentlicht werden" (in german). Otherwise the status is alway "offline"