LogoThai.COM

ขายโปรแกรมระบบงานคลินิกทำงานผ่านเวป => บันทึกเขียนโปรแกรม => ข้อความที่เริ่มโดย: LesCop ที่ 12 ธันวาคม 2556 16:49:18

LOGOthai.com

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



หัวข้อ: ใช้การ Login จาก Facebook มาเชื่อมกับเวปเรา
เริ่มหัวข้อโดย: LesCop ที่ 12 ธันวาคม 2556 16:49:18
ใช้การ Login จาก Facebook มาเชื่อมกับเวปเรา

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

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

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

1.หน้าจอที่ผู้ใช้ Login ด้วยรหัสจาก Facebook
(http://www.logothai.com/smf_logothai/file_upload/pic_upload/134/facebook_00.jpg) (http://www.logothai.com/smf_logothai/file_upload/pic_upload/134/facebook_00.jpg)

2.ตั้งค่าชื่อโปรแกรมเราเพื่อให้ผู้ใช้ต่าง Login เข้า Facebook แล้วรู้จักเรา
(http://www.logothai.com/smf_logothai/file_upload/pic_upload/134/facebook_01.jpg) (http://www.logothai.com/smf_logothai/file_upload/pic_upload/134/facebook_01.jpg)

3.ค่าต่างๆที่สำคัญๆ
(http://www.logothai.com/smf_logothai/file_upload/pic_upload/134/facebook_02.jpg) (http://www.logothai.com/smf_logothai/file_upload/pic_upload/134/facebook_02.jpg)

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

(http://www.logothai.com/smf_logothai/file_upload/pic_upload/134/facebook_04.jpg) (http://www.logothai.com/smf_logothai/file_upload/pic_upload/134/facebook_04.jpg)

โค๊ด:
###คำสั่งสร้างตารางเพื่อเก็บชื่อผู้ใช้จาก 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&


หัวข้อ: Re: ใช้การ Login จาก Facebook มาเชื่อมกับเวปเรา
เริ่มหัวข้อโดย: LesCop ที่ 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/


หัวข้อ: Re: ใช้การ Login จาก Facebook มาเชื่อมกับเวปเรา
เริ่มหัวข้อโดย: LesCop ที่ 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++;
}


หัวข้อ: Re: ใช้การ Login จาก Facebook มาเชื่อมกับเวปเรา
เริ่มหัวข้อโดย: LesCop ที่ 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)
     ));


หัวข้อ: Re: ใช้การ Login จาก Facebook มาเชื่อมกับเวปเรา
เริ่มหัวข้อโดย: club88 ที่ 17 มกราคม 2557 17:36:03
 ว้าวว  &a003&


หัวข้อ: Re: ใช้การ Login จาก Facebook มาเชื่อมกับเวปเรา
เริ่มหัวข้อโดย: darksnowwow ที่ 06 พฤษภาคม 2557 14:12:18
ทำได้ด้วยดีจังเลยคะไม่เคยเห็นที่ไหนทำมาก่อนเลยคะ


หัวข้อ: Re: ใช้การ Login จาก Facebook มาเชื่อมกับเวปเรา
เริ่มหัวข้อโดย: aiijung ที่ 24 พฤษภาคม 2557 23:37:48
แจ่มเลย กำลังหาอยู่  &a021&

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




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