Mail.Ru Agentユーザーのアクティビティを追跡する簡単な方法

こんにちは、ハブユーザーの皆様。



この投稿が深刻な「混乱」に引っ張られるとは思わないが、それでも私の問題に直面している人を助けることができる。 だから、タスクが与えられます。 ポータルmail.ruの特定のユーザーがエージェントに入る頻度を追跡する必要があります。



ちょっとした歴史


むかしむかし、私はその時に利用可能な唯一の方法でこの問題を解決しました。 Delphiで小さなプログラムが作成され(言語はユーティリティと呼ばれることはありません)、開いているウィンドウのタイトルを常に監視していました。 実際、プログラムが正しく機能するためには、ユーザーのダイアログボックスがウィンドウのリストに存在する必要がありました。 プログラムは彼を監視し、「Vasily Pupkin-Disconnected」という見出しが消え、「Vasily Pupkin-Online」という見出しが表示されたときに何らかの措置を講じました。



そのシンプルさにもかかわらず、プログラムは完璧に機能し、必要な人がオンラインになったときにスピーカーのメロディーで目を覚まし、開いているウィンドウで彼が必要であることを通知しました。 原則として、プログラムを変更して、I / Oログの記録など、あらゆるニーズに適合させることができます。



それにもかかわらず、この問題の解決策は、ユーザーが連絡先リストにユーザーを追加し、彼との対話を開いたままにし、実際、マッチとドングリから30分間膝の上で組み立てる必要があるため、カテゴリー的に正しくありません。



今日、そのような問題に直面して、私はそれを解決するための新しい簡単な方法を思いつきました。それをあなたの裁判所に置きました。



したがって、タスクは同じままです。



準備する


まず、ユーザーのステータスが「なんとか」ちらつくかどうかを考えます。 サイトmail.ruをスキャンし、「mrim」プロトコルの仕様に簡単に慣れてから、次のオプションを見つけました。



1)実際には、mail.ruエージェントのステータス。

2)メールおよび「My World」のページに表示されるWebエージェントのステータス。

3)「My World」ページのステータス。



パラグラフ1は、mrimプロトコルマニュアルを焼却する必要があるため、破棄されます。 特定のアカウントでログインし、アドレスで検索し、ステータスを取得する方法を見つけるのに時間がかかりすぎます。 さらに、ユーザーは、これを行うために特定のアカウントを作成する必要があります。 後者の理由により、ポイント2は破棄され、さらにWebエージェントのデバイスを理解する必要があります。 しかし、ポイント3は私に真剣に興味を持ち、より詳細に対処できます。



ご存知のように、アドレスが「address@mail.ru」のユーザーのページのアドレスは、「my.mail.ru/mail/address」として形成されます。 ページに移動すると、ユーザー名の横に緑または赤の「@」アイコンが表示され、実際に探している人がいるかどうかが示されます。



画像



これは解決策のようですが、それほど単純ではありません。 少し前に私の記憶が私に役立っていたとしても、今ではアカウントからログアウトして、権限のないユーザーがそれを見るようにページを見ると、名前の横のアイコンが消えることに気付くのは簡単です。



ただし、アカウントに戻り、このアイコンの詳細を確認します。 より正確には、その「スタイル」属性を見てみましょう。



画像



リンク「status.mail.ru?address@mail.ru」をクリックすると、同じ13x13のGIF形式のアイコンが表示されます。これは承認に依存せず、オンラインかどうかを正確に示します。 目標が定義されたので、作業を始めましょう。



実際には、コーディング


仕事のために、GDLibライブラリーが接続されたPHPを選択しました。



function check_status($mail) { $image = imagecreatefromgif("http://status.mail.ru/?".$mail); //   ,  .  ,     $x=10; //   ,    . $y=10; //  ,    ,     . $rgb = imagecolorsforindex($image,imagecolorat($image, $x, $y)); //  RGB   . $color = dechex($rgb[red]).dechex($rgb[green]).dechex($rgb[blue]); //     RGB  HEX  . if ($color == 'd3f0dc') return 'online'; //      ,   . if ($color == 'f8dddd') return 'offline'; if ($color == 'd8e9d8') return 'away'; //  - ,        ,  " ", "  "  " ,  ".   ""      ,     . }
      
      







実際、それがすべてです。 関数の入力は探しているユーザーの電子メールアドレスであり、出力はテキスト形式のステータスです。 必要に応じて、状況に応じて、関数がtrue / falseを返すようにすることができます。



もちろん、ソリューションは最も基本的なものです。 しかし、それにもかかわらず、不必要なコストなしで、望ましい結果を得ました。 結果の関数は非常に広く使用できます。 たとえば、タスクをCronに置き、さらに処理するために結果をデータベースに書き込むか、ネットワーク上の関心のある人の外観を追跡してこのアラートについて通知するJavaScriptの小さなウィジェットをフェッチします。



All Articles