ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน


เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

LogoThai.COM  |  ขายโปรแกรมระบบงานคลินิกทำงานผ่านเวป  |  บันทึกเขียนโปรแกรม (ผู้ดูแล: LesCop)  |  ใช้การ Login จาก Facebook มาเชื่อมกับเวปเรา
LOGOthai.com

คลิกที่นี่ -->> เปรียบเทียบทำเลและราคาที่ดินวังน้ำเขียวผ่าน GooleMAP | คลิกที่นี้ -->> Upload ภาพ

หน้า: [1]   ลงล่าง
  ตอบ  |  พิมพ์  
ผู้เขียน หัวข้อ: ใช้การ Login จาก Facebook มาเชื่อมกับเวปเรา  (อ่าน 9311 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
LesCop
แหลม+คม=หอก
Administrator
เศรษฐีพันล้าน
*

พลังน้ำใจ 575
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 450


ขอหยุดที่86เอย


ดูรายละเอียด
« เมื่อ: 12 ธันวาคม 2556 16:49:18 »
ตอบโดยอ้างถึงข้อความอ้างถึง

ใช้การ Login จาก Facebook มาเชื่อมกับเวปเรา

(โหลดไฟล์โค๊ตทั้งหมดได้ที่ด้านล่าง)

ยุคนี้ต้องยกให้เขาเลย Facebook ใครๆก็ต้องมีกัน จะดีไหมหากการใช้งานระบบต่างๆจะอิงชื่อผู้ใช้และรหัสผ่านชุดเดียวกับ Facebook ป้อนชื่อผู้ใช้และรหัสผ่านครั้งเดียว เข้า Facebook ก็ได้ เข้าระบบเราก็ได้ คิดดูแล้ว เลิศ ไม่เบาทีเดียว เกิดการอยากลองว่าทำไง จึงลงมือหาข้อมูลจาก Google จึงได้ผลได้ดังนี้

เก็บรายละเอียดผู้ใช้ Facebook เข้าฐานข้อมูลในเวปเรา เพื่อเอาไว้เช็คกับการ Login จาก Facebook

1.หน้าจอที่ผู้ใช้ Login ด้วยรหัสจาก Facebook


2.ตั้งค่าชื่อโปรแกรมเราเพื่อให้ผู้ใช้ต่าง Login เข้า Facebook แล้วรู้จักเรา


3.ค่าต่างๆที่สำคัญๆ


หลังจากที่ทำใน Localhost ระบบต่างๆทำงานได้ไม่มีปัญหา พอ Upload ขึ้นเวปจริงกลับทำงานไม่ได้ สาเหตุเพราะ PHP ไม่ได้เปิด extension 2ตัวคือ json และ curl



โค๊ด:
###คำสั่งสร้างตารางเพื่อเก็บชื่อผู้ใช้จาก Facebook

CREATE TABLE `fblogin` (
  `id` int(10) NOT NULL auto_increment,
  `fb_id` int(20) NOT NULL,
  `name` varchar(300) NOT NULL,
  `email` varchar(300) NOT NULL,
  `image` varchar(600) NOT NULL,
  `postdate` datetime NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;



โค๊ด:
###library.php --> ตั้งค่าเชื่อมต่อฐานข้อมูล
<?php
mysql_connect
("localhost""root""password") or die ("Oops! Server not connected"); // Connect to the host
mysql_select_db("db_facebook") or die ("Oops! DB not connected"); // select the database
?>



โค๊ด:
###index.php --> ไฟล์หน้าแรกคลิกเข้าสู่เข้า Loging
<?php
error_reporting
(0);
include 
'library.php';
?>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Asif18 tutorial about facebook login for mywebsite using php sdk</title>
<script type="text/javascript">
window.fbAsyncInit = function() {
FB.init({
appId      : '1393348287579521', // replace your app id here
channelUrl : '//http://localhost/test_code/facebook-login/',
status     : true,
cookie     : true,
xfbml      : true  
});
};
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));

function FBLogin(){
FB.login(function(response){
if(response.authResponse){
window.location.href = "actions.php?action=fblogin";
}
}, {scope: 'email,user_likes'});
}
</script>
<style>
body{
font-family:Arial;
color:#333;
font-size:14px;
}
</style>
</head>

<body>
<h1>logothai.COM ทดสอบ Login ด้วย php SDK</h1>
<h3>กรุณาคลิก Icon เพื่อทำการ Login แล้วเก็บ ID เข้าสู่ฐานข้อมูล</h3>
<img src="facebook-connect.png" alt="Fb Connect" title="Login with facebook" onclick="FBLogin();"/>
</body>
</html>

โค๊ด:
###actions.php --> แสดงรายละเอียดการ Loging จาก Facebook
<?php
include 'library.php';

$action $_REQUEST["action"];
switch(
$action){
case "fblogin":
include 'facebook.php';
$appid  "1393348287579521";
$appsecret  "xxxxxxxxxxxxxx";
$facebook   = new Facebook(array(
  
'appId' => $appid,
  
'secret' => $appsecret,
  
'cookie' => TRUE,
));
$fbuser $facebook->getUser();
if ($fbuser) {
try {
    $user_profile $facebook->api('/me');
}
catch (Exception $e) {
echo $e->getMessage();
exit();
}
$user_fbid = $fbuser;
$user_email $user_profile["email"];
$user_fnmae $user_profile["first_name"];
$user_image "https://graph.facebook.com/".$user_fbid."/picture?type=large";
//$check_select = mysql_num_rows(mysql_query("SELECT * FROM fblogin WHERE email = '$user_email'"));
//if($check_select > 0){
mysql_query("INSERT INTO fblogin (fb_id, name, email, image, postdate) VALUES ('$user_fbid', '$user_fnmae', '$user_email', '$user_image', '$now')");
//}
}
break;
}
?>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>logothai.COM ทดสอบ Login ด้วย php SDK</title>
<script type="text/javascript">
window.fbAsyncInit = function() {
FB.init({
appId      : '1393348287579521', // replace your app id here
channelUrl : '//http://localhost/test_code/facebook-login/',
status     : true,
cookie     : true,
xfbml      : true  
});
};
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));

function FBLogout(){
FB.logout(function(response) {
window.location.href = "index.php";
});
}
</script>
<style>
body{
font-family:Arial;
color:#333;
font-size:14px;
}
.mytable{
margin:0;
width:600px;
border:2px dashed #17A3F7;
}
a{
color:#0C92BE;
cursor:pointer;
}
</style>
</head>

<body>
<h1>logothai.COM<Br>ทดสอบ Login ด้วย php SDK ของ Facebook</h1>
<h3>แสดงรายละเอียดการ Login ด้วย Facebook ดังนี้</h3>
<table class="mytable">
<tr>
<td colspan="2" align="left"><h2>สวัสดีครับ : <?php echo $user_fnmae?>,</h2><a onClick="FBLogout();">Logout</a></td>
</tr>
<tr>
<td><b>Facebook id : <?php echo $user_fbid?></b></td>
    <td valign="top" rowspan="2"><img src="<?php echo $user_image?>" height="100"/></td>
</tr>
<tr>
<td><b>Email : <?php echo $user_email?></b></td>
</tr>
</table>
</body>
</html>

(โหลดไฟล์โค๊ตทั้งหมดได้ที่ด้านล่าง)
 &a041& &a041& &a041& &a041& &a041&

* facebook-login.rar (152.07 KB - ดาวน์โหลด 352 ครั้ง.)
« แก้ไขครั้งสุดท้าย: 13 ธันวาคม 2556 17:47:29 โดย LesCop » แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า


>> เมื่อโกรธจัด อย่าเพิ่งตอบข้อความใคร..
>> เมื่อดีใจ อย่าเพิ่งให้สัญญา..
>> เมื่อเศร้าหนักหนา อย่างเพิ่งตัดสินใจ..
LesCop
แหลม+คม=หอก
Administrator
เศรษฐีพันล้าน
*

พลังน้ำใจ 575
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 450


ขอหยุดที่86เอย


ดูรายละเอียด
« ตอบ #1 เมื่อ: 13 ธันวาคม 2556 16:24:19 »
ตอบโดยอ้างถึงข้อความอ้างถึง

Facebook PHP SDK: Fixing getUser() on PHP 5.4.x
หากเป็น PHP 5.4.x อาจจะพบปัญหาให้แก้ไขดังนี้

ไฟล์ base_facebook.php ค้นหา Function
โค๊ด:
protected function getCode() {
if (isset($_REQUEST['code'])) {
if ($this->state !== null &&
isset($_REQUEST['state']) &&
$this->state === $_REQUEST['state']) {
 
// CSRF state has done its job, so clear it
$this->state = null;
$this->clearPersistentData('state');
return $_REQUEST['code'];
} else {
self::errorLog('CSRF state token does not match one provided.');
return false;
}
}
 
return false;
}


นำโค๊ตนี้ไป copy ทับ
โค๊ด:
protected function getCode() {
$server_info = array_merge($_GET, $_POST, $_COOKIE);
 
if (isset($server_info['code'])) {
if ($this->state !== null &&
isset($server_info['state']) &&
$this->state === $server_info['state']) {
 
// CSRF state has done its job, so clear it
$this->state = null;
$this->clearPersistentData('state');
return $server_info['code'];
} else {
self::errorLog('CSRF state token does not match one provided.');
return false;
}
}
 
return false;
}

ที่มา : https://www.webniraj.com/2012/12/19/facebook-php-sdk-fixing-getuser-on-php-5-4-x/
แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า


>> เมื่อโกรธจัด อย่าเพิ่งตอบข้อความใคร..
>> เมื่อดีใจ อย่าเพิ่งให้สัญญา..
>> เมื่อเศร้าหนักหนา อย่างเพิ่งตัดสินใจ..
LesCop
แหลม+คม=หอก
Administrator
เศรษฐีพันล้าน
*

พลังน้ำใจ 575
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 450


ขอหยุดที่86เอย


ดูรายละเอียด
« ตอบ #2 เมื่อ: 14 ธันวาคม 2556 21:39:06 »
ตอบโดยอ้างถึงข้อความอ้างถึง

ดึงภาพของเราที่ Post จาก Facebook มาแสดง
โค๊ด:
				$albums = $this->facebook->api('/me/albums');
foreach($albums['data'] as $album){
// get all photos for album
$photos = $this->facebook->api("/{$album['id']}/photos");
foreach($photos['data'] as $photo){
echo "<img src='{$photo['source']}' />", "<br />";
}
}

ดึงข้อความที่เรา Post ทั้งหมดจาก Facebook มาแสดง
โค๊ด:
				// show statuses
$statuses = $this->facebook->api('/me/statuses');
foreach($statuses['data'] as $status){
echo $status["message"], "<br />";
}

เขียนโปรแกรมให้ Post ข้อความไป Facebook
โค๊ด:
				$status = $this->facebook->api('/me/feed', 'POST', array('message' => 'ข้อความที่ต้องการ Post เข้าไปที่ Facebook'));
var_dump($status);
echo 'This is working';
ที่มา : http://www.joeyrivera.com/2010/facebook-graph-api-app-easy-w-php-sdk/


โชว์ว่ามีเพื่อนเป็นใครบ้าง
โค๊ด:
				$user_friends = $this->facebook->api('/me/friends');
sort($user_friends['data']);
$i=1;
foreach($user_friends['data'] as $f){
echo $i . ") " . $f['id'];
echo " - " . $f['name'] . "<br/>";
$i++;
}
« แก้ไขครั้งสุดท้าย: 15 ธันวาคม 2556 10:26:36 โดย LesCop » แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า


>> เมื่อโกรธจัด อย่าเพิ่งตอบข้อความใคร..
>> เมื่อดีใจ อย่าเพิ่งให้สัญญา..
>> เมื่อเศร้าหนักหนา อย่างเพิ่งตัดสินใจ..
LesCop
แหลม+คม=หอก
Administrator
เศรษฐีพันล้าน
*

พลังน้ำใจ 575
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 450


ขอหยุดที่86เอย


ดูรายละเอียด
« ตอบ #3 เมื่อ: 15 ธันวาคม 2556 18:22:13 »
ตอบโดยอ้างถึงข้อความอ้างถึง

โพสข้อความใน Facebook เรา แล้วแชร์ให้เฉพาะคนที่ต้องการ
โค๊ด:
$privacy = array(
            'description' => 'ชื่อเพื่อนที่อยากให้เห็น',
            'value'   => 'CUSTOM',
            'friends' => 'SOME_FRIENDS',
            'allow'   => 'ID เพื่อนที่อยากให้เห็น'
        );

$result = $facebook->api('/me/feed', 'POST', array(
        'from' => array(
            'name' => 'ชื่อเรา',
            'id'   => 'ID เรา'
        ),
        'name'    => 'TEST NAME',
        'caption' => 'Test Caption',
        'description' => 'Test Description',
        'message' => 'This is test.',
        'privacy' => json_encode($privacy)
     ));
แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า


>> เมื่อโกรธจัด อย่าเพิ่งตอบข้อความใคร..
>> เมื่อดีใจ อย่าเพิ่งให้สัญญา..
>> เมื่อเศร้าหนักหนา อย่างเพิ่งตัดสินใจ..
club88
เศรษฐีใหม่
*

พลังน้ำใจ 0
ออฟไลน์ ออฟไลน์

กระทู้: 2


ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 17 มกราคม 2557 17:36:03 »
ตอบโดยอ้างถึงข้อความอ้างถึง

 ว้าวว  &a003&
แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า

darksnowwow
เศรษฐีใหม่
*

พลังน้ำใจ 0
ออฟไลน์ ออฟไลน์

กระทู้: 2


ดูรายละเอียด
« ตอบ #5 เมื่อ: 06 พฤษภาคม 2557 14:12:18 »
ตอบโดยอ้างถึงข้อความอ้างถึง

ทำได้ด้วยดีจังเลยคะไม่เคยเห็นที่ไหนทำมาก่อนเลยคะ
แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า

aiijung
เศรษฐีใหม่
*

พลังน้ำใจ 0
ออฟไลน์ ออฟไลน์

กระทู้: 1


ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 24 พฤษภาคม 2557 23:37:48 »
ตอบโดยอ้างถึงข้อความอ้างถึง

แจ่มเลย กำลังหาอยู่  &a021&
แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า

แท็ก:
หน้า: [1]   ขึ้นบน
  ตอบ  |  พิมพ์  
 
กระโดดไป:  


:: ข้อตกลงร่วมกัน ::
ห้ามโพสต์รูปลามก หรือสิ่งผิดกฏหมายทุกประเภท
ห้ามโพสต์ข้อความที่ทำให้ผู้อื่นเสียหาย ห้ามใช้วาจาไม่สุภาพ หรือด่าทอ ข้อความหรือเนื้อหาที่เกิดขึ้น ผู้โพสต์ต้องเป็นคนรับผิดชอบเท่านั้น หากเราตรวจสอบว่ามีการโพสต์รูปลามก หรือทำสิ่งผิดกฎหมาย
เราจะลบโพสต์ทันทีโดยไม่ต้องแจ้งให้ทราบล่วงหน้า




คลิกที่นี่ -->> จัดพระของขวัญเข้ารุ่นและพิมพ์

หน้านี้ถูกสร้างขึ้นภายในเวลา 0.546 วินาที กับ 25 คำสั่ง