0

我正在使用此技巧将 MSN Messenger 集成到我的网站:http : //en.kioskea.net/faq/3987-integrate-msn-chat-on-your-website-or-blog MSN 状态(在线、离开等)。我想更改这些图像。可能吗?

4

1 回答 1

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 分钟)时才更新它。

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

于 2011-02-15T14:01:55.243 回答