อยากสอบถามเกี่ยวกับ facebook ค่ะ

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา อยากสอบถามเกี่ยวกับ facebook ค่ะ

อยากสอบถามเกี่ยวกับ facebook ค่ะ
พอดีตอนนี้ทำโค้ด Login ได้แล้วแต่ ในฐานข้อมูลเก็บ ไอดี ซ้ำกันค่ะ ซ้ำกันไม่พอ Logout ออกก็ไม่ได้ค่ะ งง มาก ไม่รู้ว่าเป็นที่อะไร ตรงไหน อยากรบกวนให้พี่นิคมาช่วยไกด์ให้หน่อยค่ะ ไม่ค่อยจะเข้าใจเลยค่ะ

อันนี้คือ โค้ดสำหรับล็อคอิน ฝั่ง Admin ค่ะ
<?php
	session_start();
	include("../Connections/connect.php");
	//include("../init.php");
require '../sdk/facebook.php';

$facebook = new Facebook(array(
  'appId'  => 'XXXXX',
  'secret' => 'XXXXXXXXXXXX',
));

// Get User ID
$user = $facebook->getUser();

if ($user) {
  try {
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}

if ($user) {
  $logoutUrl = $facebook->getLogoutUrl();
} else {
  $loginUrl = $facebook->getLoginUrl();
}

// Save to mysql
if ($user) {
	if($_GET["code"] != "")
	{
				
				$strSQL ="insert into login(lo_fb_id,lo_fb_name,lo_fb_link,lo_fb_date_register,lo_status) 
					values
					('".trim($user_profile["id"])."',
					'".trim($user_profile["name"])."',
					'".trim($user_profile["link"])."',
					'".trim(date("Y-m-d H:i:s"))."',
					'user')";
				$objQuery  = mysql_query($strSQL);
				mysql_close();
				header("location:manament_show.php");
				exit();
	}
}

// Logout
if($_GET["Action"] == "Logout")
{
	$facebook->destroySession();
	session_destroy();
	header("location:index.php");
	exit();
}

?>

คือหนูแยกโฟเดอร์นะค่ะ ส่วนโฟร์เดอร์ sdk จะอยู่ด้านนอก ที่นี้ ใช้โค้ดนี้สามารถ Logout ฝั่ง user ได้สำเร็จค่ะ แต่กลับกัน ฝั่ง admin ไม่ได้ค่ะ เลย งง มากเลยค่ะ ไม่รู็ติดตรงไหน

และอันนี้รูปดาต้าเบสค่ะ ทำไมมันถึงได้เก็บซ้ำๆ รันไปเรื่อยๆ เมื่อกด login with facebook 


รบกงนพี่นิค ช่วยดูให้หน่อยค่ะ ตอนนี้ติดหนักมากเลยค่ะ


Chickenkook 183.89.157.xxx 27-06-2016 18:32:57

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 11
ทดสอบหน้านี้ดูว่า ค่าที่ได้

https://www.ninenik.com/demo/test_fb_login.php

มี firstname lastname/ไหม

>>>  อัพเดท >>> 30-06-2016
------------------------------------------
แล้วเอาโค้ดหน้านี้ ไปทดสอบ ที่ server เรา เปลี่ยน appid แล้วเทียบดูว่า ได้ค่าเหมือนกันไหม

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>

<body>

<br>
<br>
<input type="button" name="button" id="button_login_with_fb" class="login_with_fb" value="Login with facebook"><br>
<textarea name="textarea" id="logview" cols="100" rows="5"></textarea>

<br>
<br>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>      
<script type="text/javascript">
	// ส่วนของการตั้งค่าการเชื่อมต่อกับ app 
    var fb_appId='xxxxxxx';   // facebook app id
    var urlDirect="http://localhost/demo/test.php";  // หน้าหลังจากล็อกอินด้วย facebook แล้ว
    var loginURL="https://www.facebook.com/dialog/oauth?";
    loginURL+="client_id="+fb_appId;
    loginURL+="&redirect_uri="+urlDirect;
    loginURL+="&auth_type=rerequest";
    loginURL+="&scope=email,public_profile";    

  window.fbAsyncInit = function() {
    FB.init({appId: fb_appId, status: true, cookie: true,version: 'v2.3',
             xfbml: true});    		 	 

	// กำหนดชื่อตัวแปร สำหรับใช้เป็น ฟังก์ชั่นล็อกอินด้วย facebook
	var fb_login = null;		 
    $(function(){

       // ฟังก์ชั่นสำหรัลล็อกอินด้วย facebook สำหรับเรียกใช้งาน
	   fb_login = function(){
		   // effect เล็กน้อยกว่ากำลังโหลดข้อมูล
		   $(".loading_text").show();
             FB.getLoginStatus(function(response) { // ตรวจสอบการล็อกินด้วย facebook
              if (response.status === 'connected') {  // มีการล็อกอินด้วย facebook และเชื่อมต่อกับ app id แล้ว
                var uid = response.authResponse.userID;  // เก็บ userID ไวในตัวแปร uid ไว้ใช้งาน
                var accessToken = response.authResponse.accessToken; // เก็บ accessToken ไว้ใช้งาน
				console.log(accessToken);
                    FB.api('/me', function(response) { // ไปดึงข้อมูลข้อผู้ใช้
						  console.log("connected");
						  console.log(response);		// แสดง log หรือรายการข้อมูลที่ได้ตากการดึงข้อมูล
						  
						  $("#logview").val(JSON.stringify(response));
						  
						  // ถ้าอยากรู้ว่าเราไปดึงข้อมูลผู้ใช้ facebook ได้ค่าอะไรมาบ้าง ให้ปิดคอมเม้น โค้ดด้านล่างก่อน
						  // เพื่อดู log ของตัวแปร response
						  
						  // นำค่าจากข้อมูลผู้ใช้มาตรวจสอบ
	                       if(response.id!=null && response.name!=null){ // ถ้าชื่อ กับ ไอดี ไม่เป็นค่าว่าง
						   		// ส่งข้อมูลไปใช้งาน เช่นตรวจสอบการล็อกอิน หรือสร้างข้อมูลสมาชิกใหม่
/*								$.post("checkuser.php",{
									fbname:response.name,
									fbemail:response.email,
									fbid:response.id,
									accTK:accessToken
								},function(data){
									console.log(data);
									window.location=urlDirect;
								});*/
							}


                    });
              } else if (response.status === 'not_authorized') {  // มีการล็อกอิน facebok แต่ยังไม่เชื่อมต่อกับ app id
                  window.location=loginURL; // บังคับให้ไปทำการเชื่อมต่อกับ app id เราก่อน
              } else {		  // กรณีอื่นๆ 
                  window.location=loginURL; //  บังคับให้ไปทำการเชื่อมต่อกับ app id เราก่อน
              }
             });      		   
	   }

		

		// ถ้ากดปุ่ม ที่มี class ชื่อ login_with_fb เรียกใช้งานฟังก์ชั่นล็อกอินด้วย facebook
       $(".login_with_fb").on("click",fb_login);
        	

        
    });
			 
  };
  (function(d, s, id){
	 var js, fjs = d.getElementsByTagName(s)[0];
	 if (d.getElementById(id)) {return;}
	 js = d.createElement(s); js.id = id;
	 js.src = "//connect.facebook.net/en_US/sdk.js";
	 fjs.parentNode.insertBefore(js, fjs);
   }(document, 'script', 'facebook-jssdk'));  		   
</script>

</body>
</html>


ninenik 180.183.46.xxx 30-06-2016
 ความคิดเห็นที่ 12
ถ้าเป็น app id ของพี่นิคมาค่ะ แต่พอมาเป็น app id ของหนูไม่มาค่ะ หนูต้องไปตั้งค่ารึเปล่าค่ะพี่นิค ถ้าเปน app id หนูมันจะขึ้นให้แค่นี้เองค่ะ
{"name":"Chickenkook Kook","id":"1061233033924871"}

แต่ถ้าเป็นของพี่นิค จะขึ้นแบบนี้ค่ะ
{"id":"1052628374785337","email":"doraemon_ku_za@hotmail.com","first_name":"Chickenkook","gender":"female","last_name":"Kook","link":"https://www.facebook.com/app_scoped_user_id/1052628374785337/","locale":"th_TH","name":"Chickenkook Kook","timezone":7,"updated_time":"2016-06-06T14:09:39+0000","verified":true}

รบกวนด้วยนะค่ะพี่นิค


chickenkook 101.108.222.xxx 30-06-2016 11:55
 ความคิดเห็นที่ 13
add friends ค้นหาในเฟส @ninenik
 
แล้วเข้าไปที่
 
https://developers.facebook.com/apps/
 
ไปที่่ rules
 
เพิ่ม administrator หรือ developer เพิ่มชื่อพี่เข้าไป เดี๋ยวเข้าไปดูให้
ว่าตั้งค่า app เป้นยังไง
 
หรือไม่ก็ต้องลองไปตั้งค่า app ตรง facebook login ดู น่าจะเป็นที่การตั้งค่า app


ninenik 183.88.65.xxx 30-06-2016
 ความคิดเห็นที่ 14
พี่ค่ะ หนูส่งให้เรียบร้อยแล้วนะค่ะ ^^ ต้องรบกวนพี่ช่วยตั้งค่าให้จริงๆค่ะ เพราะไม่รู้เรื่องเลยค่ะ


chickenkook 101.108.222.xxx 30-06-2016 13:36
 ความคิดเห็นที่ 15
 อธิบายไว้เพิ่มในบทความแล้ว

การล็อกอิน facebook กับระบบสมาชิก ด้วย facebook javascript sdk 


ninenik 183.88.65.xxx 30-06-2016
 ความคิดเห็นที่ 16
พี่นิคค่ะ หนูขอถามอีกอย่างได้ไหมค่ะ ว่าถ้าหนูจะให้ฝั่งทั้ง user และ ฝั่งของ addmin login ผ่าน facebook ที่นี้ ฝั่ง user ทำงานได้แล้วค่ะ แต่พอหนูก้อปโค้ดฝั่ง user ไปใส่ในส่วนของ addmin ทำไมมันถึงไม่ได้ค่ะ เปลี่ยนชื่อไฟล์ checkuser ก้แล้ว เปลี่ยนตัวแปร session ก้แล้ว พอเปลี่ยน session มันก็จะ error ทันทีเลยค่ะ คือปุ่มสำหรับ login จะหายไปเลย จำเป็นไหมค่ะ ที่อาจจะต้องแยก app id ของฝั่ง user และ addmin ต้องรบกวนพี่นิคอีกแล้ว รบกวนด้วยนะค่ะ


chickenkook 223.24.15.xxx 30-06-2016 18:44
 ความคิดเห็นที่ 17
ใช้ appid เดียวกันได้ แต่ตัวแปร session ต้องใช้คนละตัว urldirect อาจต้องเป็นคนละตัว ตรวจสอบ path ไฟล์ ต้องเปลี่ยน path ที่เรียกใช้ให้ถูกต้อง ตรงนี้ขึ้นกับการนำไปใช้ ว่านำไปใช้ถูกไหม


ninenik 122.155.42.xxx 30-06-2016
 ความคิดเห็นที่ 18
ขอบคุณค่ะพี่นิค  ^^


chickenkook 183.89.155.xxx 01-07-2016 10:05






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ