4

JSONPを使用してSkypeステータスを取得するためのURLを知っている人はいますか?

これまでのところ、XMLステータスURLしか見つかりませんでした(http://mystatus.skype.com/username.xml)。

(AJAXを使用してSkypeにクエリを実行しようとしています。はい、サーバー側のプロキシスクリプトを使用してクロスドメインの制限を超えることができますが、直接呼び出しはすばらしいでしょう。)

サイモン。

4

3 に答える 3

6

どうやら、拡張子を.txtに変更することで、ステータスのテキストのみのバージョンを取得できるようです。

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

「オンライン」または「オフライン」を返します。クロスドメインAJAXについては、サーバー経由でのみ実行でき、直接呼び出しは絶対に許可されていません。

于 2010-07-16T01:01:05.493 に答える
4

見出しをJSONではなく「JSONP」に変更することもできます。それはあなたが望むものです。

JSONPは、データをフェッチで運ぶことにより、サーバープロキシなしで、このようなクロスドメインフェッチをハイジャックします。それは私が今頭に浮かぶ最もハックな便利なテクノロジーのようなものです。:)

私はこれについてSkypeをナグしました-最も簡単な方法は、サーバーに公式の文書化されたJSONPインターフェースを持たせることです。彼らがそうしてくれることを願っています。

それまでの間、これが私が問題を解決した方法です。

$enable_native   = true;
$valid_url_regex = '/^http:\/\/mystatus\.skype\.com\/myuserid.*/';

これにより、mystatus.skype.com / myuserid.num(または.txt)情報を(サーバー上で実行されているcurlを介して)フェッチできます。

  • URLを使用したJSからのフェッチ:
ba-simple-proxy.php?url=http%3A%2F%2Fmystatus.skype.com%2Fmyuserid.num&mode=native&full_status=1

それでおしまい。ふぅ...:)

于 2010-07-31T08:22:55.070 に答える
3

また、PHPを使用して取得することもできます

function getSkypeStatus($username) {
    $data = file_get_contents('http://mystatus.skype.com/' . urlencode($username) . '.xml');

    return strpos($data, '<presence xml:lang="en">Offline</presence>') ? 'Offline' : 'Online';
}

また

function getSkypeStatus($username) {
    $data = file_get_contents('http://mystatus.skype.com/' . urlencode($username) . '.xml');
    preg_match('@<presence xml:lang="en">(.*?)</presence>@i', $data, $match);

    return isset($match[1]) ? $match[1] : 'Error retrieving status';
} 

乾杯!

からのBradgrafelmanに感謝します-http ://www.phpbuilder.com/board/showthread.php?t= 10361050

于 2011-09-28T18:28:38.873 に答える