Yahoo! Messengerのログイン状況を得るAPI的なものの使い方
チームの配属が10月にあり、それ以降業務中の連絡手段の一部でYahoo! Messengerを使っています。
といってもご存知のとおり(?)Yahoo! JapanとしてのYahoo! Messengerは終了しており、アメリカのYahoo!のサービスを使っています。
今回はこのYahoo! Messengerのログイン状況を簡単に知る方法を書いてゆきます。
今回の内容
方法
アクセスポイントはこちら。
http://opi.yahoo.com/online
パラメータとして次の3つがあります。
u | m | t |
---|---|---|
対象のID | gもしくはa | 数字 |
パラメータu
ログイン状況を知りたい、ユーザーIDを指定します。
パラメータm
ここでAPIの返却値を、画像でもらうか、テキストでもらうかを指定します。
gの時はhtmlが返却され、その中にはimgタグが入ってたりします。
aのときは、テキストで結果が返ってきます。
パラメータt
このパラメータは種類を指定します。
m=gの際はtが受け付ける範囲は0〜24で、
m=aの際は0〜1です。
実際にやってみる
ブラウザからやってみる
http://opi.yahoo.com/online?u=testid&m=g&t=0
で試しにブラウザからアクセスすると、(たぶんこんなIDはないから)
という画像が返ってきます。(具体的なHTMLの中身は各自でご確認を。)
実際ユーザーがログインしているときは、
と画像が変わります。
実際のログイン判定
上記のような画像が返ってくる指定の際、実はユーザーがオンラインかオフラインの判断がやりづらいです。というのも、返ってくる文字列は同じなんです。
ということで、おとなしくm=aを指定し、文字列で返却してもらいましょう。
http://opi.yahoo.com/online?u=testid&m=a&t=1
ブラウザからアクセスすると、
00
が返ってきます。(実際はpreタグの中にある。)
これがログイン時は
01
となります。
ということで、これをサクッとphpで書くと、次のようになります。
Yahoo! Messengerのログイン状況をチェックする
簡単ですね!
注意点
最後に注意点です。
冒頭にもお伝えしましたが、この方法は非推奨なものかもしれません。理由としては次のとおりです。
- 公式ドキュメントを探してみたのですが、記載が見つからない
- いつ使えなくなるか不明である(ドキュメントがないので)
- 使用済みアカウントの探索に使えてしまう
とくに、3つ目のおかげでこのやり方のグレー感がものすごくあります(個人的な感想ですが。)
なので使う際は、このあたりの理解をもって、試してみるようにしましょう!
参考にしたサイト:http://shareourideas.com/2010/03/25/yahoo-messenger-status-api/