ترايدنت :: TRAIDNT

شرح تغيير اسم المدفوع له بجوجل ادسنس بالسعودية
شرح تغيير اسم المدفوع له بجوجل ادسنس بالسعودية

الرئيسيه » لغـــات البرمجـــــــه


زوار معهد ترايدنت حياكم الله درسنا اليوم هو عن طريقة استخدام منصة الفيس بوك كتطبيق خاص ببرنامجك للأعضاء

الخطوة الأولي : الإعداد - إنشاء قاعده البيانات

رمز PHP:
CREATE TABLE `users` (
    `
idint(10unsigned NOT NULL AUTO_INCREMENT,
    `
oauth_providervarchar(10),
    `
oauth_uidtext,
    `
usernametext,
    
PRIMARY KEY (`id`)
ENGINE=MyISAM  DEFAULT CHARSET=latin1

شرح سريع : لقد قمنا بإنشاء جدول يحتوي علي الاسم فقط للمستخدم يمكنك أنت تطوير العمل لتضيف مثلا تاريخ الميلاد والبريد والصورة الشخصية وغيرها الجدول يتضمن حقلين هامين وهما oauth_provider و oauth_uid وذلك لتعريف ان المنصة المستخدمه هي facebook تخيل انك بعد ايام اردت اضافة توتير الي جانب الفيس بوك بالطبع غير المنطقي ان تقوم باضافة جدول جديد للاعضاء ولكن كل ماعليك فقط هو استخدام provider الي twitter - انشاء تطبيق الفيس بوك الآن بعد ان قمنا بانشاء قاعده البيانات نأتي الي الخطوة الثانية بالإعداد وهي انشاء تطبيق علي موقع الفيس بوك قم باتباع الرابط التالي http://www.facebook.com/developers/createapp.php

قم باختيار اسم للبرنامج الخاص بك ثم قم بالموافقة علي شروط الفيس بوك واضعط انشاء البرنامج بعد ذلك قم بالذهاب الي اعدادت البرنامج ستجد الصورة التالية

لاحظ وجود بالصورة السابقة كل من API Key Secret هذا ماسوف نحتاجه لنتمكن من التواصل مع الفييس بوك من خلال برنامجنا الآن بالقائمة قم بالذهاب الي Canvas لنقوم من خلالها بتعديل الروابط الخاصة بالبرنامج

1- الرابط الخاص بالحساب ” اختر اسم للحساب ” 2- قم بوضع الرابط الخاص بك من خلال اللوكال هوست localhost او قم بوضعه برابط نطاقك اذا كنت تمتلك النطاق قم بتكرار الرابط بالخياراين بعد ذللك قم بالذهاب الي قسم Connect من القائمة ايضاً قم بتعديل الرابط الي نفس الرابط السابق مثال كما بالصورة التالية

الي هنا تم انشاء البرنامج بنجاح عليك فقط بحفظ الاعدادت الآن عليك بحفظ مكتبة الفيس بوك الخاص بالتعامل مع PHP من هنا http://github.com/facebook/php-sdk/downloadsبعد ذلك قم بفك الضغط عنها وقم بأخذ ملف facebook.php وقم باضافتها لمجلد facebook ب السيرفر المحلي 2- الإتصال مع الفيس بوك

الآن بعد ان قمنا بعملية انشاء قاعده البيانات وانشاء البرنامج علي الفيس بوك سوف نقوم بانشاء عملية التواصل والإرتباط مع الفيس بوك قبل ان نقوم بانشاء الملفات دعني اوضح كيف تتم عملية التواصل تعتمد عملية التواصل علي ثلاث خطوات 1- البرنامج الخاص بك script يقوم بانشاء رابط مع الفيس بوك يساله عن الصلاحيات المتاحة 2- الفيس بوك يقوم بالرد عليك عن طريق الرابط الذي تم كتابته في Canvas بمتغيرات في GET 3- تقوم بالتحقق من المدخلات الناتجة من الفيس بوك واضافه الجلسة دعنا نقوم بجولة سريعة لانشاء نموزج انتساب وتسجيل الدخول بداية نقوم بانشاء ملف facebook_login.php بداية نقوم بجلب مكتبة الفيس بوك # جلب مكتبة الفيس بوك require("facebook.php"); الآن نقوم بانشاء الكائن باستدعاء الكلاس

رمز PHP:
# طلب الكلاس
$facebook = new Facebook(array(
    
'appId'  => 'الرقم الناتج من انشاء البرنامج بالفيس بوك',
    
'secret' => 'كذلك مثل السابق',
    
'cookie' => true
)); 

لاحظ عليك باضافة رقم البرنامج الذي تحصل عليه من الفيس بوك سوف تجد عليه خط أحمر بالصورة رقم 2 الآن دعنا ان نقوم بالتحقق من وجود جلسه بالفعل أم لا

رمز PHP:
$session $facebook->getSession();
if(!empty(
$session)) {
    
# اذا كانت هناك جلسه بالفعل قم بتجربة جلب رقم العضوية
    
try{
        
$uid $facebook->getUser();
        
$user $facebook->api('/me');
    } catch (
Exception $e){}
 
    if(!empty(
$user)){
        
# اذا كان عضو بالفعل قم بطباعه المعلومات
        
print_r($user);
    } else {
        
# للتجربة فقط في حالة كانت هناك مشكلة قم بطباعه رسالة
        
die("عفواً هناك خطأ");
    }
} else {
    
# لايوجد جلسه قم بانشاء جلسة جديدة
    
$login_url $facebook->getLoginUrl();
    
header("Location: ".$login_url);

الآن دعنا نقوم بتجربة العمل قم بالذهاب الي عنوان الملف مثال لدينا http://localhost/facebook/facebook_login.php في حالة ظهرت لك رسالة من الفيس بوك للتحقق اذن انت تسير بخطوات صحيحة ان لم يظهر ذلك فأنت لديك خطأ

الخطوة الثالثة : الإنتساب والتحقق في هذه الخطوة سوف نتعامل مع قواعد البيانات ملحوظة هامة : رجاء الانتباه لم أقم بكتابة كود نظيف من حيث الحماية أو الترتيب وذلك لانني فقط اقوم بالشرح انتبه دائماً لكي يكون الكود الخاص بك مثال بداية قم بانشاء تواصل بقاعده البيانات بالطريقة المعروفة

رمز PHP:
 mysql_connect('localhost''root''');
mysql_select_db('facebook'); 

الآن سوف نقوم بالتعامل مع $session اي الجلسة التي تم انشائها بالخطوة السابقة

رمز PHP:
# في حالة اننا لدينا جلسة بالفعل
// نقوم بالتحقق اذا كان العضو متوفر لدينا بقاعده البيانات من قبل أم لا
$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 mysql_query("SELECT * FROM users WHERE id = " mysql_insert_id());
    
$result mysql_fetch_array($query);

لاحظ عندما قمت بالبحث بقاعده البيانات قمت بالبحث عن البروفايدر provider فيس بوك facebook وذلك فكرة جيدة اذا اردت تطبيق اخر مثال تويتر وغيرهم فكل ماعليك هو تغيير البروفيدر فقط الآن الناتج من العملية السابقة هو المتغير $result وهو متغير يحتوي علي كافة معلومات العضو المطلوبة لدينا بالخطوة السابقة كان لدينا

رمز PHP:
if(!empty($user)){ 

كل ماعلينا فعله حالياً هو اضافة حالة if جديدة

رمز PHP:
   if(empty($result)){ 

ونقوم بداخلها باضافة قيم المتغيرات الي الجلسة

رمز PHP:
    $_SESSION['id'] = $result['id'];
    
$_SESSION['oauth_uid'] = $result['oauth_uid'];
    
$_SESSION['oauth_provider'] = $result['oauth_provider'];
    
$_SESSION['username'] = $result['username']; 

الآن اذا اردت طباعه اسم المستخدم بأي صفحة اخري فلتكتب

رمز PHP:
echo 'Welcome ' $_SESSION['username']; 

الخطوة الرابعه : صلاحيات أكثر وطرق اخري بعد ان قمنا باضافة العضو بقاعده البيانات وتمت عملية الانتساب وتسجيل الدخول الآن علينا ان نري ما الذي يمكننا فعله ايضاً فمثلا ماذا اذا اردت جلب اسم المستخدم وبريده وتاريخ ميلاده والصورة الرمزية وغيرها ! اذا اردت بالفعل هذه المعلومات فانت بحاجة للتعامل مع users.getInfo method دعنا نري مثال

رمز PHP:
    $uid $facebook->getUser();
    
$api_call = array(
        
'method' => 'users.getinfo',
        
'uids' => $uid,
        
'fields' => 'uid, first_name, last_name, pic_square, pic_big, sex'
    
);
    
$users_getinfo $facebook->api($api_call); 

كما هو موضح بالاعلي عن طريق النظر لقد قمت بطلب الاسم الاول والاسم الاخير والصورة الصغيرة والكبيرة لملف العضو وجنس العضو ماذا اذا اردت معلومات اكثر عليك باضافتها للقائمة اليك من خلال هذا الرابط قائمة بكافة المعلومات التي يمكنك جلبها http://wiki.developers.facebook.com/index.php/Users.getInfo#Response هل لم تحقق لك هذه المعلومات المطلوب بشكل صحيح !! اذن انت تحتاج للمزيد كمثال اخر فيديو وغيرها اذن علينا باستخدام تقنيه FQl هذه التقنيه قام بابتكارها مسؤولي فيس بوك وهي تمكنك من البحث بقاعده البيانات بطريقة SQl اذن انت سوف تتحكم بقاعده بيانات فيس بوك فيما يختص بالعضو وكلنا كمبرمجين يعلم ان هذا سوف يصل بك الي كافة المعلومات فأنت الآن تمتلك قاعده البيانات

رمز PHP:
 $uid $facebook->getUser();
    
$fql_query  =   array(
        
'method' => 'fql.query',
        
'query' => 'SELECT uid, first_name, last_name, pic_square, pic_big, sex FROM user WHERE uid = ' $uid
    
);
    
$fql_info $facebook->api($fql_query); 

اذن كيف لي ان اعرف تكوين قاعده البيانات اليك هنا قائمة باسماء الجداول المسموح لك الوصول اليها http://developers.facebook.com/docs/reference/fql/ الأمر ممتع أليس كذلك ! صلاحيات أكثر فيس بوك يعمل دائماً علي احترام خصوصية مستخدميه لذلك هو لايسمح لك بكل الاحيان بالوصول الي كافة معلومات المستخدم اذا طلب المستخدم ذلك ولكنك احيانا تريد ان تجبر المستخدم مثلا علي عرض البريد الإلكتروني في هذه الحالة سوف تطلب من المستخدم اضافة صلاحيات اكثر دعنا نوضح ذلك بالكود التالي

رمز PHP:
 $uid $facebook->getUser();
 
$url $facebook->getLoginUrl(array(
    
'req_perms' => 'email,user_birthday,status_update,publish_stream,user_photos,user_videos'
));
header("Location: {$url} "); 

اذا قرات الكود الأعلي ستجد انه يحتوي علي req_perms وهي معلومات مطلوبة ولايمكن تمام الانتساب بدونها منها علي سبيل المثال البريد وتاريخ الميلاد ممتاز اذن ربما يقوم العضو برفض اعطائك الصلاحية دعنا نقوم بعرض رسالة للعضو تظهر له في حالة قام برفض الصلاحيات

رمز PHP:
$url $facebook->getLoginUrl(array(
    
'req_perms' => 'email',
    
'next' => 'http://localhost.com/facebook/thanks.php',
    
'cancel_url' => 'http://localhost.com/facebook/sorry.php'
)); 

في هذه الحالة سوف تظهر لك رسالة من فيس بوك تطلب منك السماح بالصلاحية معلومات هامة يجب ان تعلمها - يستطيع العضو ازالة صلاحية التواصل مع موقعك بضغطتين زر فقط من خلال الفيس بوك فيجب عليك ان تقوم بمراجعه مالذي يجب فعله اذا لم يعد يسمح لك العضو بالاتصال بملفه بالفيس بوك - يمكنك حذف البرنامج الخاص بك من خلال الفيس بوك بكل بساطة استنتاج الاتصال مع الشبكات الإجتماعية امر مميز حقاً ان تضيفة الي برنامجك وخاصة مع وجود ملايين المستخدمين بالفيس بوك ولكن مالذي سيحدث عندما لايمتلك الزائر عضوية بالفيس بوك اذن عليك ان لا تستغني عن نموزج التسجيل بموقعك ولتجعل اضافة الفيس بوك او اي شبكة اجتماعية اخري مجرد اضافة لك وليس اكثر تم بحمد الله


http://www.traidnt.net/vb/showthread.php?p=16341099#post16341099

آخر الدروس في قسم لغـــات البرمجـــــــه: