ใช้ comments.get เรียกและ บันทึก facebook comment ล่าสุด ลงฐานข้อมูล ด้วย jQuery

26 August 2010

เนื้อหาต่อเนื่อง จากหัวข้อ

http://www.ninenik.com/สร้าง_comment_ด้วย_social_plugins_ใน_facebook_api_อย่างง่ายดาย-291.html

หากใคร ต้องการเพิ่มขีดความสามารถของ facebook comment สามารถศึกษารายละเอียด ตามคำแนะนำต่อไปนี้

เหตุผล หรือความต้องการ เช่น
- ต้องการ บันทึกรายการ comment ลงในฐานข้อมูล เพื่อนำมาเรียกใช้ในภายหลัง
- ต้องการนำไปประยุกต์ใช้ ว่าเนื้อหา หรือบทความใด มีการอัพเดทรายการ comment ใหม่บ้าง
- ต้องการแสดงรายการ comment ใน style หรือรูปแบบ ที่กำหนดเอง
- อื่นๆ..

ข้อมูลที่ได้รับเมื่อทำการ post ข้อความใน comment
 

"xid": "7ef517e0c77703c01b1897051da438ca", เป็นค่าเดียวกันกับตอนการส่งค่า ด้วยวิธี comments.get
"fromid": 1234998873,  // id ของ facebook ของคนที่โพส สามารถนำไปใช้เพื่อดูรูปภาพ หรือข้อมูลบางส่วนได้
"time": 1282803813,  // เวลา เป็น timestamp สามารถแปลงเป็นข้อความวันที่ ด้วย php 
"text": "ข้อความที่โพส", // ข้อความที่ได้ทำการโพสไป
 "id": 561987,   // id ที่ไม่ซ้ำกัน สำหรับอ้างอิงของแต่ละ xid นั้นๆ
 "username": "", // ชื่อผู้ใช้มีค่ากรณีให้บุคคลทั่วไป สามารถโพสได้ แต่ถ้าเป็นสมาชิก facebook จะเป็นค่าว่าง
// ข้อมูลด้านล่าง ใช้หรือไม่ใช้งานก็ได้ จะเป็นส่วนที่ใช้ร่วมกับ facebook ในหน้า wall กรณีตอนโพสให้ส่งค่าไปที่ wall 
// หรือหน้าข้อมูลส่วนตัวของสมาชิกใน facebook
"reply_xid": "",  // xid ของรายการที่ตอบใน wall หน้าข้อมูลส่วนตัวของสมาชิกใน facebook
 "post_id": "",  // id ที่แสดงใน wall หน้าข้อมูลส่วนตัวของสมาชิกใน facebook
"app_id": 134358299911812, // application id ของ facebook ที่ใช้งานอยู่
"object_id": "" }, // object id อ้างอิง ของ facebook 

เริ่มต้นการใช้งาน
1. การใช้งานส่วนเพิ่มเติมนี้ จำเป็นต้องกำหนด xid ให้กับแท็ก fb:comments เสมอ โดยใช้วิธีการเข้ารหัส url ของหน้าที่แสดง comments นั้นๆ
โดยมีวิธีการกำหนด ดังนี้
 

 xid="<?=md5("http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'])?>" (แค่รูปแบบ ให้อ่านข้อต่อไปได้เลย)

2. สร้าง input type hidden สำหรับเก็บค่า xid ดังนี้
 

<input name="fb_xid" type="hidden" id="fb_xid" value="<?=md5("http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'])?>" />

3. เพิ่ม attribute ชื่อ  notify="true" เข้าไปในแท็ก  fb:comments

4. จะได้รูปแบบ แท็ก  fb:comments พร้อมใช้งานดังนี้
 

<input name="fb_xid" type="hidden" id="fb_xid" value="<?=md5("http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'])?>" />
<fb:comments xid="<?=md5("http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'])?>" 
notify="true" numposts="10" simple="true"  width="400" publish_feed="true"></fb:comments>
<div id="fb-root"></div>

สามารถกำหนด xid ไว้ในตัวแปร php สำหรับใช้งานแทนได้ เช่น
 

<?php $pageXID=md5("http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']); ?>
<input name="fb_xid" type="hidden" id="fb_xid" value="<?=$pageXID?>" />
<fb:comments xid="<?=$pageXID?>" notify="true" numposts="10" simple="true"  
width="400" publish_feed="true"></fb:comments>
<div id="fb-root"></div>

5. ส่วนของ Javascript กำหนดดังนี้
 

<script src="js/jquery-1.4.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
  window.fbAsyncInit = function() {
	FB.init({appId:'123456', // กำหนด app id ตรงส่วนนี้
	status: true, 
	cookie: true,
	 xfbml: true
	 });
	 
    FB.Event.subscribe('comments.add', function (resp) {  // Event เมื่อมีการโพสข้อความ
		FB.api(
		  {
			method: 'comments.get',  // เรียกใช้ method comments.get เพื่อดึงข้อมูล โดยส่ง xid ไป
			xid: $("#fb_xid").val()
		  },
		  function(response) {
			  // สร้างตัวแปร fb_commentData ไว้รับค่า ข้อมูล สำหรับนำไปบันทึก
				// สามารถเพิ่มตัวแปร เพิ่มเติม โดยกำหนด ต่อท้าย เช่น
				// object_id:response[0].object_id,
				// myvar:10			 			  
			  var fb_commentData={
					xid:response[0].xid,
					fromid:response[0].fromid,
					time:response[0].time,
					text:response[0].text,
					id:response[0].id,
					username:response[0].username,
					reply_xid:response[0].reply_xid,
					post_id:response[0].post_id,
					app_id:response[0].app_id,
					object_id:response[0].object_id					
			  };
			  //  ส่งค่าข้อมูลไปใช้งาน เช่นบันทึกลงฐานข้อมูลด้วย ajax  ในที่นี้ส่งเป้นตัวแปร post 
			  // ค่าที่รับจะเป็น $_POST['xid']  $_POST['text'] เป็นต้น
			  $.post("save_comment.php",fb_commentData,function(returnData){
				  // คำสั่งเมื่อบันทึกข้อมูลเรียบร้อยแล้ว
				 
			  });
		  }
		);		
    }); 	 
  };
  (function() {
    var e = document.createElement('script'); 
	e.async = true;
    e.src = document.location.protocol +
      '//connect.facebook.net/en_US/all.js';
    document.getElementById('fb-root').appendChild(e);
  }());
</script>

6. ส่วนของไฟล์ สำหรับบันทึกข้อมูล หรือรับค่าจากตัวแปร POST ตามข้อ 5 ชื่อ save_comment.php

<?php
header("Content-type:text/html; charset=UTF-8");        
header("Cache-Control: no-store, no-cache, must-revalidate");       
header("Cache-Control: post-check=0, pre-check=0", false);       
// สร้างส่วนติดต่อฐานข้อมูล
// คำส่ง php ตามต้องการ 
// ข้อมูลตัวแปรที่ส่งมาจะเป้น $_POST['ชื่อตัวแปร'] เช่น
// $_POST['text'] คือข้อความที่โพส เป็นต้น
?>

* จากตัวอย่างโค้ดข้าง ต้นมีรูปแบบ การใช้งาน คำสั่งที่สามารถนำไปประยุกต์ใช้งานได้มากมาย เช่น FB.api  หรือ Event.subscribe เป็นต้น..

หมายเหตุ  การใช้ โฟลเดอร์ คำว่า facebook ในเว็บไซต์ เมื่อมีการเรียกใช้ facebook api จะมี popup แจ้งเตือน ปัจจุบัน  มีใน IE แล้ว จึงควรหลักเลี่ยง
การใช้ชื่อ facebook ใน path url เช่น
www.example.com/facebook/comment_facebook.php ใช้เป็นชื่ออื่นแทน เช่น www.example.com/fb/comment_facebook.php ส่วนในชื่อไฟล์ สามารถใช้งานได้ เช่น comment_facebook.php








บทความในหมวดที่่น่าสนใจ อื่นๆ jQuery Learning

11 Nov 10 แนะนำ การแทรก swf ไฟล์ ด้วย jQuery SWFObject Plugin อ่าน 2377 27 May 10 ทบทวน ลำดับ การทำงาน mouse events ใน jQuery อ่าน 2365 05 Apr 10 กำหนด link ลิ้งค์ ทั้งหมด ให้ เปิดหน้าต่างใหม่ ด้วย jQuery อย่างง่าย อ่าน 2352 27 Jun 11 ลูกเล่น เพิ่มช่องรับ input type file อัตโนมัติ ด้วย jQuery อ่าน 2313 01 Nov 10 ประยุกต์ ฟังก์ชัน animate ใน jQuery เลื่อน scroll หน้าเพจ อ่าน 2308 02 Dec 10 แทรก emoticon ด้วย javascript ฟังก์ชัน ให้กับ ckeditor อ่าน 2281 27 Jan 10 การใช้งาน jQuery.contains() ใน jQuery 1.4 อ่าน 2262 21 Dec 10 กำหนด ปุ่ม ให้ทำงาน เมื่อคลิกที่ checkbox ยอมรับเงื่อนไข ด้วย jQuery อ่าน 2205 26 Jan 10 การใช้งาน method .clearQueue() ใน jQuery 1.4 javascript library เวอร์ชั่นล่าสุด อ่าน 2144 18 Mar 09 สร้างเครื่องคิดเลขอย่างง่ายด้วย CSS และ jQuery อ่าน 2081 13 Oct 10 สร้างเส้นทาง จากการ คลิกกำหนด waypoints จุดผ่านเส้นทาง ใน google map อ่าน 2032 26 Oct 10 แนะนำ autocomplete ใน jQuery ui กับการประยุกต์ใช้งาน อ่าน 1993 11 Sep 10 กำหนด แก้ไข เปลี่ยนแปลง รูปแบบ ประเภท ของ แผนที่ map types ใน google map อ่าน 1955 28 Dec 10 ทบทวน ลำดับ การทำงาน keyboard events ของ input text ใน jQuery อ่าน 1858 13 Sep 10 ประยุกต์ สร้างเครื่องมือ ค้นหา พิกัด จากชื่อสถานที่ จำนวนมาก ใน google map อ่าน 1857

บทความคนเข้าอ่านวันนี้

19 Jun 10 สร้าง comment ด้วย social plugins ใน facebook api อย่างง่ายดาย อ่าน 17299 25 Sep 08 ฟังก์ชั่นเกี่ยวกับ วันที่ เวลา ใน javascript อ่าน 7137 02 May 10 ใช้งาน ajax ใน jQuery ดึงข้อมูลจากฐานข้อมูลมาแสดง ใน tooltip อ่าน 5973 08 Oct 10 การอัพเดท สถานะบน facebook อัตโนมัติ แบบ graph api ด้วย php sdk อ่าน 3534 15 Nov 09 สร้างลิ้งค์เมนู 2 ภาษา กรณี ไทย อังกฤษ ด้วย php อย่างง่าย อ่าน 1864 16 Aug 10 เทคนิค ใช้ event beforeunload แจ้งเตือนก่อน ปิดบราวเซอร์ ด้วย jQuery อ่าน 1614 04 Oct 10 รู้จัก และใช้งาน php sdk สำหรับ facebook เพิ่มขึ้น อ่าน 2856 15 Sep 10 สร้าง ตัว marker ระบุตำแหน่ง ใน google map จำนวนมาก จาก xml ไฟล์ อ่าน 3726 19 Jul 10 การนำ ระบบสมาชิก ของ facebook มาประยุกต์ใช้ อ่าน 5416 08 Dec 09 แปลง jQuery object เป็น DOM object อ่าน 2476 17 Sep 10 กำหนด infowindow ให้กับตัว marker จำนวนมาก ใน google map อ่าน 2932 06 Oct 10 การใช้งาน graph api ของ facebook ด้วย php sdk อ่าน 3703 24 Feb 09 สร้างรูปแบบข้อความ เบอร์โทร เลขที่บัตรประชาชน เวลา ด้วย javascript อ่าน 4624 12 Sep 10 การดึง attribute และค่าต่างๆ จาก xml ไฟล์ด้วย jQuery อย่างง่าย อ่าน 2426 18 Mar 09 เพิ่มลดขนาดตัวอักษรในหน้าเว็บแบบง่ายด้วย jQuery อ่าน 3131 11 Jan 12 รู้จัก และใช้งาน DATEDIFF() ใน mysql ฟังก์ชัน เทียบช่วงเวลาที่เหลือ อ่าน 414 02 Jun 10 การหา ขนาด ความกว้าง ความสูงของ รูปภาพ ด้วย javascript อ่าน 2168 02 Apr 09 สร้างรายการตัวเลือกให้กับ input text ด้วย jQuery อย่างง่าย อ่าน 4089 26 Aug 10 ใช้ comments.get เรียกและ บันทึก facebook comment ล่าสุด ลงฐานข้อมูล ด้วย jQuery อ่าน 2379 11 Aug 10 ปรับแต่ง facebook comments ด้วย css กำหนด style ให้เข้ากับเว็บ อ่าน 17763
จำนวนผู้เยี่ยมชม 784693
คน 2012 © Copyright ninenik.com. All rights reserved.