الشرح الشامل لكيفية توثيق زوار موقعك عن طريق Facebook







نعود معكم أعضاء وزوار موقعنا الكرام, وكما عودناكم بالجديد, وان نقدم لكم دروس مهمه وفى نفس الوقت مفهومه وواضحه , هذا درس من الدروس الرائعه التى تعلمتها , وقد تم شرح هذا الدرس على أحد مواقع التعليم الاجنبيه, وهذا الدرس كنت من زمان ابحث عنه الى ان وجدت من شرحه , فله جزيل الشكر mr rafael على هذا الشرح اللى شرحه , بصراحه استفدت منه كثيرا فحبيت ان اشرح هذا الدرس بعد ان استوعبته الحمدلله وأشرحه ولكن على طريقتى المتواضعه , لان الدرس فيه بعض الجزئيات والمشاكل ولكن سوف نتجنبها ان شاء الله , فأنا لم أقرر عمل هذا الدرس , الا لما تأكدت وجربت كل شىء بنفسى اولا: الهدف من الموضوع: كثيرا من المواقع تقوم بعمل نظام عضويات للاعضاء, ونظام العضويات يختلف من موقع وللاخر, وقد يتعب المبرمج فى برمجته, ولكن لماذا لا نوفر الوقت لما هو أهم, ونستخدم الfacebook الرائع ليقوم لنا بهذه المهمه, وأعتقد لايوجد أقوى تسجيل دخول وتوثيق أقوى من هذه المواقع العملاقه لذلك دعنا نشوف فكرة الدرس بشىء مبسط انظر للصوره

تمام دعنا ننطلق ونشرح درسنا على بركة الله فهرس خطوات الدرس: 1-انشاء قاعدة بيانات لتخزين العضويات الموثقه من الفيس بوك 2-انشاء الapplication اللى راح نسويه على الفيس بوك للاتصال به من أجل عملية التوثيق 3-تنزيل مكتبة الفيس بوك +عمل صفحة الدخول وشرح فكرتها البرمجية 4-تجربة الاتصال ورؤية ناتج التوثيق للدخول للصفحة المحميه 5-المشاكل التى ممكن تواجهك وحلها اولا: انشاء قاعدة البيانات : وهى سوف تكون قاعدة لتخزين العضويات الموثقه بالفعل ودخلت لموقعك على الصفحة المحميه

رمز Code:
CREATE TABLE `users` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`oauth_provider` varchar(10),
`oauth_uid` text,
`username` text,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

 

ثانيا:انشاء الapplication اللى راح نسويه على الفيس بوك للاتصال به من أجل عملية التوثيق ملاحظه: لابد ان تملك عضويه على الفيس بوك قبل تنفيذ اى خطوه قادمه...... اذهب للصفحه الاتيه:اضغــــط هـــــــنـــــا 1- اكتب اسم برنامجك اللى راح تسويه من أجل ان يوثق زوار موقعك للدخول للصفحا المحميه

2- سوف تذهب بعدها لصفحة اعداد البرنامج, وستجد اولا انه معطيك مفتاح وكلمة السر لبرنامج

-نكمل الاعدادت من اليسار اختار canvas ثم نكتب صفحة التوجيه للبرنامج , ولنفرض انها ستكون على السيرفر المحلى مثل ما بالصوره, ولا تنسى علامة ? فى اخر الرابط لانها مهمه

-نكمل واضغط من اليسار على connect , ونكتب اعدات الاتصال

احفظ الاعدادات , وبهيك يكون برنامج الاتصال جاهز للاستخدام ملاحظه: يمكنك الرجوع لاعدادت البرنامج وتغييرها فى اى وقت من خيار Myapplications على صفحتك الخاصه على الفيس بوك

ثالثا: تنزيل مكتبة الفيس بوك +عمل صفحة الدخول وشرح فكرتها البرمجيه 1-انزل المكتبه من هذا الرابــــــط 2-الحين نريد انشاء صفحة الدخول اللى راح تضعها فى موقعك من أجل توثيق دخولهم للصفحة المحمية اولا: دعونا نعرف فكرة هذه الصفحه

ثانيا: هذا هو ملف كاملا مشروحا فوق كل عباره وظيفة الدوال و الفانكش :

رمز Code:
<?php
session_start();

if(!empty($_SESSION)){
header("Location: home.php");
}
mysql_connect('localhost', 'root', 'root');
mysql_select_db('facebook');

# استدعاء رابط المكتبه
require("facebook.php");

# تجهيز بيانات الدخول لبرنامج على الفيس بوك
$facebook = new Facebook(array(
'appId' => 'id رقم ال',
'secret' => 'باسورد البرنامج',
'cookie' => true
));

# التحقق من وجود جلسه ام لا
$session = $facebook->getSession();

if(!empty($session)) {
# لو وجدت جلسه راح نجلب رقمها وبياناتها user id (getUser()) and user info (api->('/me'))
try{
$uid = $facebook->getUser();
$user = $facebook->api('/me');
} catch (Exception $e){}

if(!empty($user)){
# توجد جلسه, دعنا نتحقق من عضويه مسجله بالفيس بوك ومخزنه عندنا فى قاعدة البيانات
$query = mysql_query("SELECT * FROM users WHERE oauth_provider = 'facebook' AND oauth_uid = ". $user['id']);
$result = mysql_fetch_array($query);

# لو لا, اضف هذه العضويه لقاعدة البيانات
if(empty($result)){
$query = mysql_query("INSERT INTO users (oauth_provider, oauth_uid, username) VALUES ('facebook', {$user['id']}, '{$user['name']}')");
$query = msyql_query("SELECT * FROM users WHERE id = " . mysql_insert_id());
$result = mysql_fetch_array($query);
}
// ظبط اعدادت الجلسه
$_SESSION['id'] = $result['id'];
$_SESSION['oauth_uid'] = $result['oauth_uid'];
$_SESSION['oauth_provider'] = $result['oauth_provider'];
$_SESSION['username'] = $result['username'];
} else {
# اذا وجدت خطأ, وقف البرنامج
die("There was an error.");
}
} else {
# اذا لم يوجد جلسه, نقوم بعمل واحده
$login_url = $facebook->getLoginUrl();
header("Location: ".$login_url);
}

رابعا: تجربة الاتصال ورؤية ناتج التوثيق للدخول للصفحة المحميه الحين بعد ان جهزنا ملف login_facebook.php نفتحه على المتصفح وسوف يوجهك للفيس بوك, ليطلب منك التوثيق قبل ان يوجهك للصفحة المحميه اللى راح تحدهها فى الملف السابق عن طريق هذا الكود

رمز Code:
if(!empty($_SESSION)){
header("Location: home.php");
}

 

النتائج

بعدها راح يوجهنا للصفحة المحميه home.php

شوفتوا البساطه والمتعه خامسا: المشاكل اللى ممكن تواجهك: طبعا من أهم المشاكل التى واجهتها هى كالاتى: 1-تعليق الفيس بوك, فقد يواجهك مشكله عمل البرنامج , لذا عليك الانتظار حتى تنظبط 2-تغير بيانات البرنامج, وهذه حدثت معى اول مره , لذا لو واجهتك مشكله وطلعلك error عند تجربه ملف login_facebook.php , يفضل تراجع اعدادت البرنامج خصوصا connect والcanvas هذه أهم المشاكل ........ لتحميل ملفات الدرس مرفقه .......... طبعا أخونا rafael شارح أشياء كثيره أخرى , ولكن للاسف لو شرحتها لن تفيد الكثير, لانها تركز بالاخص على من يستخدم الفيس بوك(مثل حالاتى) , وأنا أعلم ان الكثير يأخذ فكره سيئه عن الفيس بوك على الرغم من ان له فوائده كثيره يكفى انى بتواصل مع أصدقاء العمر والدراسه , بصراحه لما قرأت هذا الدرس, شجعنى ان اتجهنى لاتعامل مع ركن المبرمجين هنا, حتى احتك بهؤلاء عمالقه البرمجه , ونزلت كتاب خاص ببرمجيات الفيس بوك والمكتبه وكيفيه التعامل معها, وبس يتثنى لى الوقت سوف اقرأه بالتوفيق

 


http://www.traidnt.net/vb/showthread.php?t=1596046