更改MSN聊天状态图标

时间:2011-02-15 13:15:51

标签: javascript html css msn msn-messenger

我正在使用此提示将MSN Messenger集成到我的网站:http://en.kioskea.net/faq/3987-integrate-msn-chat-on-your-website-or-blog 它显示一个具有当前MSN状态的图标(在线,远离等)。我想改变这些图像。有可能吗?

1 个答案:

答案 0 :(得分:0)

我第一次回答这个问题:

来到这里:

http://messenger.services.live.com/users/XXXXXXXXXXX@apps.messenger.live.com/presenceimage?mkt=en-GB

会将您重定向到:

http://www.wlmessenger.net/static/img/presence/Offline.gif

这使得检测状态变得更加容易!

我错过了。


我看了一眼:

http://settings.messenger.live.com/Applications/CreateHtml.aspx

我选择了状态图标选项,并给出了这样的代码:

<a target="_blank" href="http://settings.messenger.live.com/Conversation/IMMe.aspx?invitee=XXXXXXXXXXX@apps.messenger.live.com&mkt=en-GB">
    <img style="border-style: none;"
     src="http://messenger.services.live.com/users/XXXXXXXXXXX@apps.messenger.live.com/presenceimage?mkt=en-GB"
     width="16" height="16" />
</a>

无论您的状态如何,图像的路径都保持不变。

根据使用纯HTML / CSS / JS(afaik)在图像中返回的状态,无法更改图像。 (即使我意识到它重定向后)

我可以想到一种技术,不容易 而且不太难,但你必须要使用服务器端语言,如PHP或ASP.NET。

您可以将该代码更改为以下内容:

<a target="_blank" href="http://settings.messenger.live.com/Conversation/IMMe.aspx?invitee=XXXXXXXXXXX@apps.messenger.live.com&mkt=en-GB">
    <img style="border-style: none;" 
     src="proxyMyMsnImage.php"
     width="16" height="16" />
</a>

proxyMyMsnImage.php会执行以下操作:

  • HEAD请求(或GET,如果不起作用)图片(http://messenger.services.live.com/users/XXXXXXXXXXX@apps.messenger.live.com/presenceimage?mkt=en-GB
  • 根据您重定向到的图像(例如Offline.gif),您可以发送自己的状态图像版本以及正确的mime类型,例如image/gif
  • 您可以缓存此结果,并且只有在至少X时间过去(例如,2分钟)时才更新它。

弄清楚如何检测您发送的状态图像是最困难的部分现在非常容易。