Is it still possible to get Skype's user online status?

后端 未结 3 1924
天涯浪人
天涯浪人 2021-02-07 12:17

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

相关标签:
3条回答
  • 2021-02-07 12:48

    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

    • http error: Error to get the api data e.g. problems with internet
    • connection Unknown: Not opted in or no data available. Offline:
    • The user is Offline Online: The user is Online Away:
    • The user is Away Not Available: The user is Not Available Do Not
    • Disturb: The user is Do Not Disturb (DND)
    • Invisible: The user is Invisible or appears Offline
    • Skype Me: The user is in Skype Me mode

    Possible numeric Statuscodes:

    • case 0 = Unknown
    • case 1 = Offline
    • case 2 = Online
    • case 3 = Away
    • case 4 = Not Available
    • case 5 = Do Not Disturb
    • case 6 = Invisible
    • case 7 = Skype Me

    I god these informations from following threads: https://stackoverflow.com/a/16320950/2377961 https://stackoverflow.com/a/6426418/2377961

    0 讨论(0)
  • 2021-02-07 12:57

    Feature is not supported since May 2015

    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

    0 讨论(0)
  • 2021-02-07 13:03

    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"

    0 讨论(0)
提交回复
热议问题