web-dev-qa-db-ja.com

Skypeのユーザーのオンラインステータスを取得することはまだ可能ですか?

タイトルが示すように、APIサービスの(大きな)変更後もSkypeでユーザーのステータス(オンライン、オフライン、ビジーなど)を確認することは可能ですか?開発者セクションは現在非常に制限されているようです: http://developer.skype.com/

14
TheUnexpected

はいあります。

オンラインステータスを検出するために使用できるURLがいくつかあります。

これにより、ステータス名が記載されたテキストが表示されます(例:離れているかオンライン)

http://mystatus.skype.com/SKYPENAME.txt

これにより、数値のSkypeステータスコードが得られます(以下のリストを参照)

http://mystatus.skype.com/SKYPENAME.num

これにより、異なる言語の数値ステータスコードとステータステキストを含むxml出力が得られます

http://mystatus.skype.com/SKYPENAME.xml

最後に、さまざまなステータスアイコン画像を表示するURLがあります。

「smallicon」または「smallclassic」を好きな画像に置き換えます。 (可能な値:balloon、bigclassic、smallclassic、smallicon、mediumicon、dropdown-white、dropdown-trans)

http://mystatus.skype.com/smallicon/SKYPENAMEhttp://mystatus.skype.com/smallclassic/SKYPENAMEhttp:// mystatus。 skype.com/SKYPENAME

In 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データを取得するためのエラー(例:インターネットの問題
  • 接続不明:オプトインされていないか、データがありません。オフライン:
  • ユーザーはオフラインオンラインです:ユーザーはオンラインアウェイです:
  • ユーザーは不在です利用できません:ユーザーは利用できません
  • 妨害:ユーザーは妨害しない(DND)
  • 非表示:ユーザーが非表示であるか、オフラインで表示されます
  • Skype Me:ユーザーはSkypeMeモードです

可能な数値ステータスコード:

  • ケース0 =不明
  • ケース1 =オフライン
  • ケース2 =オンライン
  • ケース3 =アウェイ
  • ケース4 =利用不可
  • ケース5 =邪魔しない
  • ケース6 =見えない
  • ケース7 = Skype Me

私はこれらの情報を次のスレッドから得ています: https://stackoverflow.com/a/16320950/2377961https://stackoverflow.com/a/6426418/2377961

6
Radon8472

更新2014-12-19:

知っておくことが重要です。Skypeステータスの確認は、ユーザーが「インターネットでのマイステータス」または「Mein StatusdarfimNetzveröffentlichtwerden」(ドイツ語)を有効にしている場合にのみ機能します。それ以外の場合、ステータスは常に「オフライン」です。

9
Radon8472

この機能は2015年5月以降サポートされていません

チェックボックスがSkypeオプションから消えました。

出典: 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

5