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