แสดงสถานะเอ็มเอสเอ็นบนเวบ (MSN Status Checker)


อัปเดท : 29 กรกฎาคม พ.ศ.2547 , แสดง : 56,349 , ความคิดเห็น : 4

เมื่อก่อนสมัยที่ ICQ กำลังฮิตผมจำได้ว่าตอนนั้นถ้าผมทำเวบแล้วจะใส่ เลข ICQ ไปด้วย ที่ผมชอบก็คือ มันสามารถทำให้มีรูป ICQ เพื่อบอกสถานะว่าเรา Online หรือ Offline อยู่ เป็นการบอกแบบ RealTime โดย ICQ จะให้บริการเองแต่ตอนนี้ผมเองไม่ได้ใช้ ICQ แล้ว แต่มาใช้ MSN แทนใน เลยคิดว่าทำอย่างไรให้คนเข้าเวบแล้วสามารถเห็นสถานะ MSN ว่าเรา Online หรือ Offline อยู่

ผมหาวิธีอยู่นานเริ่มจากหา Code หาแนวทางต่าง ๆ หรือลอง เอา PHP มาแกะเพื่อจะแปลงเป็น ASP.net สุดท้ายก็ไม่เจอ แม้แต่ตัว Code PHP (MSN Status Checker) ที่มีก็ใช้ไม่ได้แล้ว ไปอ่านเจอเค้าบอกว่า MSN เปลี่ยนวิธีการติดต่อ(Sock) ซึ่งผมเองก็ไม่ทราบทางเทคนิคก็เลย(เมื่อก่อน MSN จะมีส่วนของ MSN for Developer) ลองหาเวบที่เป็น Provider ด้านนี้ ดีกว่า ก็เลยเจอมาเวบนึง น่าสนใจมาก ชื่อเวบ http://www.onlinestatus.org/ มัน Check ได้ไม่ใช่แค่ MSN แต่มัน Check ได้หมดไม่ว่า Yahoo,ICQ หรืออื่นๆ ผมไม่อยากเสียเวลามาดูวิธีทำกันเลยดีกว่า

วิธีแรก
1. เข้าไปที่ http://www.onlinestatus.org/forum/usage.php แล้วเลือก(Click) Host มาสักตัว ดูที่ Uptime สูงๆหน่อย
2. เมื่อเข้าไปแล้วจะมีให้กรอกข้อมูลดังนี้
    Medium : เลือกการติดต่อ มีหลายแบบเช่น AIM,ICQ,IRC,Jabber,MSN®,Yahoo ให้เลือก MSN หรือเลือกแบบอื่นก็ได้ตามต้องการ
    User id : กรอก MSN account เช่น [email protected]
    Address to online icon (optional) : URL* รูป ออนไลน์
    Address to offline icon (optional): URL* รูป ออฟไลน์
    Address to unknown icon (optional) : URL* รูป ไม่ทราบสถานะ
    * URL รูป ถ้าเราไม่ชอบรูปที่เค้าจัดเตรียมไว้ให้
3.เมื่อกรอกข้อมูลเสร็จคลิ๊ก Get HTML Code ระบบจะสร้าง Code HTML ให้อัตโนมัติ แค่ Copy ไปใช้ตามต้องการ

วิธีที่สอง
จากปัญหาที่ Host มีหลายอันซึ่งดีบ้างไม่ดีบ้าง การ Fix Host จึงอาจมีปัญหาได้ อ่านเจอใน Forum เค้าแนะว่าให้ใช้เป็นแบบ Random Host น่าจะดีกว่า เค้ามีตัวอย่าง PHP Code ผมเลยมาเลียนแบบเป็น ASP.net ได้ดังนี้ (ตัวอย่างเป็นการ Check MSN เท่านั้น)

OnlineCheck.aspx

<%@ Page Language="VB" Debug="true" %>
<script runat="server">

Sub Page_Load(ByVal Sender as Object, ByVal E as EventArgs)
Dim myAL As New ArrayList()
Dim RanNumber
     Try
          myAL.Add("http://mightymichelob.tcworks.net:8080/")
          myAL.Add("http://www.the-server.net:8000/")
          myAL.Add("http://osi.matrixau.net:8080/")
          myAL.Add("http://osi.welcometo.hk:8080/")
          myAL.Add("http://snind.gotdns.com:8080/")

          RanNumber = CInt(Int((myAL.Count* Rnd()) + 1))
          msnImages.imageURL=myAL(RanNumber)&"/msn/[email protected]/onurl=www.nextproject.net/images/msn_online.gif/
offurl=www.nextproject.net/images/msn_offline.gif/unknownurl=www.nextproject.net/
images/msn_unknow.gif"
     Catch Ex As Exception
     End Try
End Sub

</script>
<asp:HyperLink id="msnImages" runat="server" Width="100px"></asp:HyperLink>


โดยที่บรรทัด msnImages.imageURL คุณอาจใช้วิธี Copy Html จาก วิธีแรก โดย ลบ Host ออกแล้วแก้เป็นตัวแปร myAL(RanNumber) ก็ได้

วิธีที่สาม
วิธีที่สองมีข้อจำกัดคือ Fix Account เช่น ต้องการแสดง User ที่อยู่ใน List ที่เปิดฐานข้อมูลหรืออื่น จะทำไม่ได้ก็ต้องปรับปรุง Code นิดหน่อย (ตัวอย่าง)

OnlineCheck2.aspx

<%@ Page Language="VB" Debug="true" %>
<script runat="server">

Sub Page_Load(ByVal Sender as Object, ByVal E as EventArgs)
Dim myAL As New ArrayList()
Dim RanNumber
Dim getProtocol,getAccount as String
     Try
          getProtocol=Request.QueryString("getProtocol")
          getAccount=Request.QueryString("getAccount")

          myAL.Add("http://mightymichelob.tcworks.net:8080/")
          myAL.Add("http://www.the-server.net:8000/")
          myAL.Add("http://osi.matrixau.net:8080/")
          myAL.Add("http://osi.welcometo.hk:8080/")
          myAL.Add("http://snind.gotdns.com:8080/")

          RanNumber = CInt(Int((myAL.Count* Rnd()) + 1))
          msnImages.imageURL=myAL(RanNumber)&"/"&getProtocol&"/"&getAccount
     Catch Ex As Exception
     End Try
End Sub

</script>
<asp:HyperLink id="msnImages" runat="server" Width="100px"></asp:HyperLink>


ตอนจะเรียกใช้เรียกผ่าน URL: www.yourdomain.com/OnlineCheck2.aspx?getProtocol=msn&[email protected] เป็นต้น
จริงๆ แล้วมีวิธีอื่น ๆ อีกเยอะขึ้นอยู่กับประยุกต์ใช้มากกว่า แก้ไขวิธีการส่งค่าว่าส่งค่าแบบไหน ส่งจาก QueryString,Database หรืออื่นๆ โดยต้นแบบมาจาก วิธีแรก เป็นหลัก ลองดูนะครับเผื่อจะมีประโยชน์บ้าง

ปล.ถ้าท่านใดทราบวิธีการเช็คสถานะ แบบที่ติดต่อ MSN โดยตรงช่วยให้ความรู้ผมด้วยนะครับ

ลิงค์ที่เกี่ยวข้อง
yahoo.com
ICQ.com
MSN.com


ผู้เขียน/อ้างอิง : จักรกฤษณ์ แร่ทอง

เวบ/อินเตอร์เน็ตเทคโนโลยี

ความคิดเห็น/แนะนำ/ติชม/อื่นๆ

  • thrunks [30 ส.ค. 2551 , 08:12 AM]

    สบายดีคับ จอแนะนำตัวก่อน ผมชื่อ ถรั้ง อายุ19ปี เป็นคน แขวงสะหวันนะเขต ประเทศลาว ผมมีบันหาเกี่ญวกับกานส้างเว็บ เว็บไชท์ของผม เป็นเว็บไชท์เกี่ยวกับดนตรีคับชึ่งอยากแนะนำและขอความเห็นจากคนอื่น. บันหามันอยู่ตนนี้และคับ เว็บไชท์ของผมมันคอมเม้นไม้ได้ เพาะผมทำไม่เป็น คุณช้วยผมทำ ได้ไหมคับ [email protected] ติดต่อมาได้ไหมคับ อยากทำคอมเม้นแบบคุณ เหมือนที่ผมพิม อยู่ตอนนี้

  • นาธาน [27 พ.ค. 2552 , 02:38 PM]

    ลองดูนี่ดูครับ http://bc46.com/forum/index.php?topic=386.0

  • Mew [21 ส.ค. 2553 , 11:58 AM]

    หนูอยากทราบวิธีการแสดงสถานะต่าง ๆ ของMSN แบบละเอียดค่ะเพราะว่าต้องทำส่งคุณครู แต่หนูสืบค้นเท่าไหร่ก็ไม่พบ รบกวนช่วยบอกหนูหน่อยนะค่ะ หนูต้องการด่วนค่ะ [email protected] ขอบคุณค่ะ

  • กอฟ [07 ต.ค. 2553 , 11:54 PM]

    ผมอยากให้พี่ช่วยแอดเมล มาหาผมหน่อยคับช่วยอธิบายให้หน่อย ผมอ่านแล้วไม่ค่อยเข้าใจผมก็หามานานมากเลยคับ อยากได้มาก ช่วยทีนะคับ [email protected]