אינטרנט ישראל
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
ראשי » מדריכים » אפליקצית פייסבוק » שימוש ב-FQL באפליקציות פייסבוק

שימוש ב-FQL באפליקציות פייסבוק

רן בר-זיק מאי 29, 2011 8:17 am אין תגובות

הסברים ליצירת שאילתות למסדי הנתונים של פייסבוק עבור אפליקציות כולל אפליקצית פייסבוק שעושה שימוש ב-FQL

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.

במאמרים הקודמים למדנו כיצד להשתמש ב-PHP SDK על מנת ליצור אפליקציות פייסבוק. אחד הכלים החשובים ביותר כדי לקבל מידע מהמשתמש הוא שימוש ב-FQL. השימוש ב-FQL מאפשר לנו לבצע שאילתות מורכבות על 'טבלאות' שיש למשתמש. כאשר מידת המורכבות של השאילתות תלויה בעיקר בכם.

קודם כל אנו נדון ביצירת שאילתת FQL ואחרי כן אני אדגים כיצד יש ליישם אותה באפליקציה באמצעות קריאת API.

יצירת שאילתת SQL

יצירת השאילתה היא פשוטה ביותר לאלו מכם שיודעים SQL או MySQL. אם אינכם יודעים, סימן שצריך ללמוד MySQL. בהנחה שאתם יודעים, אנו בעצם מבצעים בחירה של שדות שנמצאים בטבלאות שונות כאשר אין לנו בעצם JOIN, אך אנו יכולים להשתמש ב-Subqueries ובאופרטורים שונים כמו NOT, LIMIT, ORDER BY.

נשאלת השאלה איפה אנו מוצאים את הטבלאות? ואיך אנו יכולים לדעת אילו שדות יש בכל טבלה? דווקא כאן יש דוקומנטציה מסודרת ומצויינת שמסבירה אילו טבלאות ואילו שדות יש.

אם נציץ בדוקומנטציה של טבלת משתמשים (user), אנו נוכל לראות את השדות השונים. לפיכך, בהנחה שיש לנו את ההרשאות המתאימות, אנו יכולים לכתוב שאילתה שתחזיר לנו את השדות האלו. למשל:


SELECT name,sex,pic FROM user WHERE uid = 12345678

כאשר ה-12345678 הוא כמובן UID כלשהו. הוא יכול להיות ה-UID של זה שמפעיל את האפליקציה או UID של החברים שלו. איך אנו משיגים את ה-UID של החברים שלו? באמצעות בחינה של טבלת friend, שם באמצעות ה-UID של המשתמש אנו יכולים לראות מי כל חבריו (בתנאי שהוא נתן לנו הרשאה מתאימה לכך). באמצעות השאילתה:


SELECT uid2 FROM friend WHERE uid1 = 12345678

uid1 ו-uid2 הם כמובן השדות בטבלת friend, כאשר uid2 הם ה-UID של החברים של uid1. אם נזכור שאנו יכולים להשתמש ב-subqueries, אנו יכולים להשתמש בשאילתה הזו על מנת לשאוב את כל הפרטים על אותו משתמש שהתקין את האפליקציה שלנו:


SELECT uid, name, pic_square FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = 12345678)

כמובן שהשמים הם הגבול – תלוי במידת ההכרות שלכם עם SQL ועם הטבלאות השונות. עכשיו אתם יכולים להיות מודעים כמה מידע מפתחי אפליקציות יכולים לקבל גם על משתמשים שאפילו לא התקינו את התוכנות שלהן.

קריאה ל-API

אחרי שניסחנו את שאילתת ה-FQL, הגיע הזמן לשלוח אותה. בהנחה שאתם יודעים כיצד ליצור אפליקצית פייסבוק באמצעות PHP SDK, לאחר תהליך האותנטיקציה אנו משתמשים במתודת api על מנת לשגר FQL ולקבל תוצאות באופן הבא:


		try{
            $fql    =   "SELECT uid, name, pic_square FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())";
            $param  =   array(
                'method'    => 'fql.query',
                'query'     => $fql,
                'callback'  => ''
            );
            $fqlResult   =   $facebook->api($param);
        }
        catch(Exception $o){
            print_r($o);
        }

כאשר ()me ב-FQL הוא פונקציה קטנה שפשוט מחזירה את ה-UID של המשתמש שהתקין אותה.

אני מצרף דוגמא לאפליקציה מלאה של פייסבוק שמה שהיא עושה זה להדפיס את כל רשימת החברים + תמונה:


<?php
    //facebook application configuration -mahmud
    $fbconfig['appid' ] = "XXXXXXXXXXX";
    $fbconfig['secret'] = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";

    $fbconfig['baseUrl']    =   "https://internet-israel.com/internet_files/facebook/facebook_fql";
    $fbconfig['appBaseUrl'] =   "http://apps.facebook.com/fbtest-fql-il/";

    $user            =   null; //facebook user uid
    include_once "facebook.php";

    $facebook = new Facebook(array(
      'appId'  => $fbconfig['appid'],
      'secret' => $fbconfig['secret'],
      'cookie' => true,
    ));

    $user  = $facebook->getUser(); //האם המשתמש מחובר
    
    $loginUrl = $facebook->getLoginUrl( //קישור לחיבור + ההרשאות המבוקשות
            array(
                'scope' => 'friends_about_me,friends_activities,friends_birthday,friends_education_history,friends_likes,friends_photos,friends_status'
            )
    );

    if ($user) { //בדיקה אם המשתמש קיים
		print 'user on line';
		
		try{
            $fql    =   "SELECT uid, name, pic_square FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())";
            $param  =   array(
                'method'    => 'fql.query',
                'query'     => $fql,
                'callback'  => ''
            );
            $fqlResult   =   $facebook->api($param);
        }
        catch(Exception $o){
            print_r($o);
        }

		
		print "<table>";
		foreach ($fqlResult as $key => $value) {
			print "<tr>";
			print "<td><img src='".$value['pic_square']."' alt='user picture' /></td>";
			print "<td>".$value['name']."</td>";
			print "<tr />";
		}
		print "</table>";
    }
    else if (!$user) {
        echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
        exit;
    }

כאשר לא נשכח להכניס במקום ה-XXXX את מספר האפליקציה והקוד הסודי שלה שמתקבל לאחר הגדרת האפליקציה.

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.
פייסבוק

השארת תגובה

ביטול

ללמוד ג'אווהסקריפט בעברית

ללמוד לתכנת ג'אווהסקריפט בעברית שגייס יותר משלוש מאות אלף שקל ולמעלה מ-2000 תומכים - בואו ללמוד עכשיו איך לתכנת.

רשימת הנושאים
  • מדריכים
    • ריאקט
    • טייפסקריפט
    • ECMAScript 6
    • ES20XX
    • Node.js
    • Express
    • רספברי פיי
    • Babel
    • docker
    • MongoDB
    • Git
    • לימוד MySQL
    • SASS
    • jQuery
    • CSS3
    • HTML 5
    • SVN
    • LESS
  • פיתוח אינטרנט
    • פתרונות ומאמרים על פיתוח אינטרנט
    • jQuery Scripts
    • jQuery למתקדמים
    • יסודות בתכנות
    • נגישות אינטרנט
  • חדשות אינטרנט
  • מידע כללי על אינטרנט
    • רשת האינטרנט
    • בניית אתרי אינטרנט
  • rss logo

    לכל המאמרים

    לכל המאמרים שפורסמו באינטרנט ישראל משנת 2008 ועד עכשיו.
  • rss logo

    RSS Feed

    משתמשים בקורא RSS? אם כן, עקבו אחרי אינטרנט ישראל באמצעות פיד ה-RSS!
    מה זה RSS?
  • Twitter logo

    עקבו אחרי בטוויטר

    בחשבון הטוויטר שלי אני מפרסם עדכונים מהירים על חדשות בתחום התכנות והיזמות, התרעות על מצבי חירום ורכילות בוערת על תחום הווב.
    מה זה טוויטר?
  • facebook like image

    ערוץ הטלגרם של אינטרנט ישראל

    בערוץ הטלגרם של אינטרנט ישראל אני מפרסם את הפוסטים של באתר וכן עדכונים טכנולוגיים נוספים.
    מה זה טלגרם?
  • github logo

    הפרויקטים שלי בגיטהאב

    הפרויקטים שאני כותב ושוחררו לציבור ברישיון קוד פתוח נמצאים ברובם בגיטהאב.
חיפוש

כל הזכויות שמורות לרן בר-זיק ולאינטרנט ישראל | מדיניות הפרטיות של אתר אינטרנט ישראל | אתר אינטרנט ישראל נגיש לפי תקן WCAG 2.0 AA | הצהרת הנגישות של האתר | אבטחת מידע ודיווח על בעיית אבטחת מידע

גלילה לראש העמוד