ตั้งแต่ทำงานมารู้สึกได้เจอของเล่นแปลกๆ เยอะแยะเต็มไปหมด เล่นได้แทบทุกเดือนไม่มีเบื่อ เมื่อวานต้องทำเกี่ยวกับ MSN เลยต้องไปหาเครื่องมือมาใช้ ตอนแรกพี่แนะนำว่าให้ไปดูจาก php แต่ลองขุดๆ เขี่ยๆ ดูปรากฏว่าใช้งานจริงไม่ได้ สุดท้ายเลยหาของจาวาโดยเฉพาะออกมา แล้วก็เจอตัวนี้เข้า Java-JML (Java MSN Messenger Library)
ความสามารถมันก็พอตัวเลย ทำหน้าที่เหมือนไคลเอ็นท์ MSN ได้ทุกอย่าง สามารถเอารายชื่อ ตั้ง status หรือแม้แต่สนทนากับคนอื่นเป็นกลุ่มหรือรายบุคคลก็ได้ โดยในเว็บจะมีโค้ดตัวอย่างตั้งแต่ เริ่มต่อเข้าไปยัง MSN การรับค่าสถานะจากคนอื่น การรับห้องที่คนอื่นชวน การดูว่าในห้องมีใครบ้าง แต่สิ่งหนึ่งที่อย่างไม่มีคือ การส่งข้อความไปหาคนอื่น
ก็เลยมาเขียนตัวอย่างลงในบล๊อกเพิ่มอีกอัน เผื่อจะมีคนเอาไปดัดแปลงเล่นเป็นอย่างอื่น (ตอนนี้ก็คิดไว้ว่าจะทำเล่นหลายอย่างอยู่เหมือนกัน
)
เริ่มจากสร้าง Object ที่ไว้ใช้ต่อและคุยกับเซิร์ฟเวอร์ก่อน
messenger = MsnMessengerFactory.createMsnMessenger(email, password);
messenger.getOwner().setInitStatus(MsnUserStatus.HIDE);
messenger.setLogIncoming(true);
messenger.setLogOutgoing(true);
messenger.login();
อันนี้ดูจากตัวอย่างได้ทั่วไป จากนั้นเวลาที่ต้องการส่งข้อความก็แค่สั่งว่า
Email email = Email.parseStr("target@email");
messenger.sendText(email, "message");
ข้อความก็จะค่อยๆ ถูกส่งไปยังเป้าหมาย แต่จะไม่ได้ถูกส่งไปทันที ต้องรอซักระยะนึงก่อน ถ้าหากปิด messenger เลยหลังส่งข้อความก็จะไม่ถูกส่งไป แต่วิธีตรวจสอบว่าข้อความส่งไปยังนี่ ยังหาไม่ได้ด้วยสิ ใครพอจะมีวิธีบอกบ้างก็แนะนำหน่อยนะครับ และก็ที่สงสัยอีกอย่างคือ ถ้าหากว่าเราส่งข้อความไปยังเป้าหมายที่ไม่ได้เพิ่มชื่อเราเข้าไป ข้อความจะไปถึงไหมะ
จาเอา offline-message ฮับ
…. โอ้วเจ๋ง คิดไปคิดมาอยากทำด้าน network แฮะ
ผมก็ใช้อยู่เหมือนกัน และลองส่งไปยังคนที่ไม่มีรายชื่อใน contact ปรากฏว่าไม่ได้ครับ แต่อาจจะมีวิธีก็ได้ ส่วนจะรู้ได้ไงว่าถึงไม่ถึงนั้นถ้าหากใช้ MsnSwitchboard เป็นตัวส่งจะมี parameter ตัวที่สองที่เป็น boolean ถ้าใส่ false แปลว่าไม่รอผลว่าถึงหรือไม่ มันจะ return false ทันที แต่ถ้า ใส่เป้น true แปลว่ารอผล ซึ่งถ้า return กลับมาเป็น true ก็แปลว่าถึงครับ แต่ผมลองทำส่วนของการส่ง emoticon แล้วเกิด error ครับ ใน forum เขาก็มีคนถามแบบเดียวกันแต่ไม่มีคนตอบ ถ้ายังไงใครทำได้ช่วยบอกวิธีด้วยนะครับ มีอะไรยังไงก็คุยกันได้ครับทางเอ็มก้ได้ kritchai_v@hotmail.com