วิธี Invite Friend หรือส่ง Request ใน Facebook ด้วย Javascript SDK by

31
Oct
0

ก่อนจะอ่านต่อ แนะนำให้ไปอ่านการใช้งาน Facebook Javascript SDK เบื้องต้นที่บทความเก่าของผมอันนี้ก่อนครับ คือต้องสั่ง FB.init ก่อนจะใช้งานครับ จากนั้นเรามาดูรูปแบบคำสั่งกันเลยดีกว่าครับ (ถ้าใครใช้กับ app เก่าที่มีอยู่แล้ว ให้ปรับที่หน้า developer ของ app tab Advanced ให้ Requests 2.0 Efficient เป็น enable เอาไว้ด้วยครับ)

Request Dialog 2.0

Request Dialog 2.0


FB.ui({
method: 'apprequests',
message: 'ข้อความที่จะแสดงให้ผู้รับเห็น',
filters: ['all'],
exclude_ids:['123'],
max_recipients: 20
}, function(response){
// ตรวจสอบว่าได้มีการเลือกเพื่อนอย่างน้อย 1 คนจึงจะทำงานต่อไป
if (response != null && response.to.length > 0){
for (var i=0; i < response.to.length; i++) {
alert(response['to'][i]); // วนลูปทดลองสั่งให้แสดงเลข user_id ของเพื่อนที่เลือกไป
}
}
}
);

จาก code ด้านบน ขออธิบายดังนี้

  • method (string) – บังคับระบุเป็น apprequests
  • message (string) – คือข้อความที่ต้องการให้ผู้รับเห็น
  • filters (array) – ต้องการให้แสดง list ของกลุ่มผู้ใช้กลุ่มใดบ้าง ระบุได้มากกว่าหนึ่งอย่าง โดยสามารถระบุได้ 3 อย่างได้แก่
    • all – แสดงเพื่อนทั้งหมดของผู้ใช้
    • app_users – แสดงเฉพาะเพื่อนที่ใช้งาน application ตัวนี้เหมือนกัน
    • app_non_users – แสดงเฉพาะเพื่อนที่ยังไม่เคยเข้ามาใช้งาน application ตัวนี้มาก่อน
  • exclude_ids (array) – ระบุยกเว้น user_id ใดๆ ที่ไม่ต้องการให้แสดง โดยกรอกเป็น array ของ user_id (ตัวอย่างการใช้งานเช่น ใช้กับการห้ามส่ง gift หาเพื่อนซ้ำคนเดิมในวันเดียวกันได้)
  • max_recipients (int) – กำหนดให้ผู้ใช้เลือกเพื่อนได้สูงสุดกี่คน
  • callback (function) – ใน parameter ตัวสุดท้ายจะเป็น callback function ซึ่งจะส่งค่า response กลับเข้าไปใน function นี้โดย response เป็นตัวแปรชนิด Object มีโครงสร้างดังนี้
    • request (int) – เป็น id การ request ครั้งนี้
    • to (array) – array ของ user_id ของเพื่อนที่ได้เลือกไป

เมื่อส่ง request เสร็จแล้ว และผู้รับได้กดรับ request แล้วเราจะต้องสั่งลบ request นั้นๆ เอง ไม่เช่นนั้นจะมี request ค้างอยู่ในหน้า app request หรือ game request อยู่อย่างนั้น โดยวิธีการลบคือให้นำ request id ที่ส่งมาต่อกับ user_id ของคนที่กดรับ request โดยคั่นกลางด้วย _ จะได้เลขอ้างอิงสำหรับลบเช่น โครงสร้าง javascript object ที่ได้รับมาเป็น {request:123, to:[3,4,5]} จะได้เป็น 123_3 ใช้ลบ request ของ user_id 3 ได้ 123_4 ใช้ลบ request ของ user_id 4 เป็นต้น วิธีการสั่งลบคือให้เรียก Graph API (ใช้ access_token ของ application ในการใช้สิทธิลบ) เพื่อลบเช่น (php นะครับ)
$facebook->api(“/123_3″,’DELETE’);
ก็จะลบ request ที่ user_id 3 กดรับไปแล้วออกจากหน้า app/game request ครับ

อันที่จริงในส่วนของการลบ request ไม่จำเป็นต้องทำก็ได้ application ยังคงทำงานได้ตามปกติแม้ไม่ลบ หากไม่เข้าใจขั้นตอนในการลบ request สามารถข้ามไปได้ครับ เพียงแต่ใน facebook เค้าว่า “เป็นหน้าที่ของ developer ที่จะต้องลบ request ที่ใช้งานแล้วทิ้งเอง” ซึ่งก็ไม่ได้บอกว่าถ้าไม่ลบจะเกิดอะไรขึ้นครับ ฮาๆ ขอให้สนุกกับการสร้าง application บน facebook นะครับ :)

Enjoy this article?

Consider subscribing to our RSS feed!

ไม่มีความเห็น

ยังไม่มีความเห็น

ใส่ความเห็น

RSS feed for comments on this post