JSONPを使用してSkypeステータスを取得するためのURLを知っている人はいますか?
これまでのところ、XMLステータスURLしか見つかりませんでした(http://mystatus.skype.com/username.xml
)。
(AJAXを使用してSkypeにクエリを実行しようとしています。はい、サーバー側のプロキシスクリプトを使用してクロスドメインの制限を超えることができますが、直接呼び出しはすばらしいでしょう。)
サイモン。
どうやら、拡張子を.txtに変更することで、ステータスのテキストのみのバージョンを取得できるようです。
「オンライン」または「オフライン」を返します。クロスドメインAJAXについては、サーバー経由でのみ実行でき、直接呼び出しは絶対に許可されていません。
見出しをJSONではなく「JSONP」に変更することもできます。それはあなたが望むものです。
JSONPは、データをフェッチで運ぶことにより、サーバープロキシなしで、このようなクロスドメインフェッチをハイジャックします。それは私が今頭に浮かぶ最もハックな便利なテクノロジーのようなものです。:)
私はこれについてSkypeをナグしました-最も簡単な方法は、サーバーに公式の文書化されたJSONPインターフェースを持たせることです。彼らがそうしてくれることを願っています。
それまでの間、これが私が問題を解決した方法です。
このPHPスクリプトを通常のHTMLと一緒にサーバーに配置しました:http://benalman.com/projects/php-simple-proxy/
その構成を次のように編集しました:
$enable_native = true; $valid_url_regex = '/^http:\/\/mystatus\.skype\.com\/myuserid.*/';
これにより、mystatus.skype.com / myuserid.num(または.txt)情報を(サーバー上で実行されているcurlを介して)フェッチできます。
ba-simple-proxy.php?url=http%3A%2F%2Fmystatus.skype.com%2Fmyuserid.num&mode=native&full_status=1
それでおしまい。ふぅ...:)
また、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