ראשי » Facebook platform - מדריך לפיתוח אפליקציות לפייסבוק, כללי, מדריכים

המדריך לפיתוח אפליקציות לפייסבוק חלק 5: Graph API

על מנת לממש את האפשרויות הרבות הטמונות ב Facebook Platform, פייסבוק מציעה למפתחים סט של API.

בחלק זה נסקור את ה API המרכזי של פייסבוק ה Graph API. מרבית המידע והדוגמאות נלקחו מאתר המפתחים של פייסבוק.

Core API

Graph API – בכנס המפתחים האחרון שלה האחרון השיקה את API זה אשר אמור להחליף את ה API הותיק שלה ה REST API שיוצג בהמשך.

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

אז איך ה API עובד?

לכל אובייקט בפייסבוק קיים שדה מזהה: ID ייחודי. השדה יכול להיות מספר או טקסט. הגישה לכל האובייקטים זהה ונראית באופן כללי כך:


לדוגמא, השדה המזהה המשוייך לדף המעריצים של קוקה קולה הוא הוא cocacola ולכן הקריאה תראה כך:

https://graph.facebook.com/cocacola

והתוצאה שמתקבלת נראית כך:


{
   "id": "40796308305",
   "name": "Coca-Cola",
   "picture": "http://profile.ak.fbcdn.net/object3/1853/100/s40796308305_2334.jpg",
   "link": "http://www.facebook.com/coca-cola",
   "category": "Consumer_products",
   "username": "coca-cola",
   "products": "Coca-Cola is the most popular and biggest-selling soft drink in history, as well as the best-known product in the world.\n\nCreated in Atlanta, Georgia, by Dr. John S. Pemberton, Coca-Cola was first offered as a fountain beverage by mixing Coca-Cola syrup with carbonated water. Coca-Cola was introduced in 1886, patented in 1887, registered as a trademark in 1893 and by 1895 it was being sold in every state and territory in the United States. In 1899, The Coca-Cola Company began franchised bottling operations in the United States.\n\nCoca-Cola might owe its origins to the United States, but its popularity has made it truly universal. Today, you can find Coca-Cola in virtually every part of the world.",
   "fan_count": 5685685
}

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

פייסבוק משתמשת ב Graph API בפורמט הנקרא JSON על מנת לספק את התוצאות. בדומה לפורמטים אחרים כגון XML, פורמט JSON משתמש בתקנים קבועים ונתמך ע"י מרבית שפות התכנות ו JavaScript בפרט. בחלקים הבאים נרחיב בנושא ונדגים גיצד ניתן לפענח את המידע המתקבל בפורמט זה ולהשתמש בו באפליקציה אותה אנו מפתחים.

כפי שצויין, באמצעות ה Graph API ניתן לגשת לאובייקטים נוספים באותה הדרך אך בחלק נכבד מהם נצטרך להזדהות על מנת שנוכל לקבל את המידע המבוקש. הזיהוי מתבצע ע"י שליחה של פרמטר מיוחד הנקרא access_token המתקבל לאחר שהמשתמש העניק לאפליקציה הרשאות לגשת לפרטיו. הזיהוי מתבצע באמצעות פרוטוקול הנקרא OAuth 2.0. נושא ההזדהות יפורט בחלקים הבאים.

להלן האובייטקים שניתן לגשת אליהם באמצעות ה Graph API (עבור האובייקטים המודגשים נדרש לספק את פרמטר הזיהוי המיוחד ולכן לחיצה עליהם תספק הודעת שגיאה)

כל האובייקטים בגרף החברתי של פייסבוק קשורים אחד לשני בעזרת קשרים. משתמש X הוא מעריץ של קוקה קולה וגם חבר של משתמש Y.
פייסבוק מכנה את הקשרים האלה בתור connections. ה API מאפשר לנו לגשת לאותם קשרים בעזרת הקריאה הבאה:



להלן מספר דוגמאות המשתמשות בשדה המזהה me המתייחסות למשתמש שמבצע את הקריאה (דוגמאות אלה מצריכות שימוש בפרמטר הזיהוי ולכן יחזירו לכם הודעות שגיאה):

ניתן גם לקבל קשרים נוספים כמו למשל רשימת המשתתפים באירוע מסויים:
https://graph.facebook.com/331218348435/attending

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

ה API גם מאפשר לנו לקבל את רשימת הקשרים הזמינים לאובייקט אותו אנו חוקרים ע"י הוספת הפרמטר: metadata=1 בדוגמא הבאה ניתן לראות את כל הקשרים של המשתמש מארק צוקרברג:

https://graph.facebook.com/zuck?metadata=1

וזאת התוצאה המתקבלת:


{
   "id": "4",
   "name": "Mark Zuckerberg",
   "first_name": "Mark",
   "last_name": "Zuckerberg",
   "link": "http://www.facebook.com/zuck",
   "location": {
      "id": 104022926303756,
      "name": "Palo Alto, California"
   },
   "gender": "male",
   "metadata": {
      "connections": {
         "home": "https://graph.facebook.com/zuck/home",
         "feed": "https://graph.facebook.com/zuck/feed",
         "friends": "https://graph.facebook.com/zuck/friends",
         "family": "https://graph.facebook.com/zuck/family",
         "activities": "https://graph.facebook.com/zuck/activities",
         "interests": "https://graph.facebook.com/zuck/interests",
         "music": "https://graph.facebook.com/zuck/music",
         "books": "https://graph.facebook.com/zuck/books",
         "movies": "https://graph.facebook.com/zuck/movies",
         "television": "https://graph.facebook.com/zuck/television",
         "likes": "https://graph.facebook.com/zuck/likes",
         "posts": "https://graph.facebook.com/zuck/posts",
         "tagged": "https://graph.facebook.com/zuck/tagged",
         "statuses": "https://graph.facebook.com/zuck/statuses",
         "links": "https://graph.facebook.com/zuck/links",
         "notes": "https://graph.facebook.com/zuck/notes",
         "photos": "https://graph.facebook.com/zuck/photos",
         "albums": "https://graph.facebook.com/zuck/albums",
         "events": "https://graph.facebook.com/zuck/events",
         "groups": "https://graph.facebook.com/zuck/groups",
         "videos": "https://graph.facebook.com/zuck/videos",
         "picture": "https://graph.facebook.com/zuck/picture",
         "inbox": "https://graph.facebook.com/zuck/inbox",
         "outbox": "https://graph.facebook.com/zuck/outbox",
         "updates": "https://graph.facebook.com/zuck/updates"
      }
   },
   "type": "user"
}

שימושים מתקדמים

ה Graph API מספק למתכנתים אפשרויות רבות נוספות.

  • ישנה אפשרות לבחור את השדות אותם אנו מעוניינים. אפשרות זאת מאפשרת לאפליקציה להיות יעילה ומהירה יותר וחוסכת עיבוד של מידע מיותר. על מנת להחזיר את הזיהוי היחודי,השם והתמונה של המשתמש מארק צוקרברג נקרא לכתובת הבאה:
    https://graph.facebook.com/zuck?fields=id,name,picture
  • ה API מאפשר לנו להחזיר בקריאה אחת תוצאות של מספר אובייקטים. פעולה זאת שימושית על מנת לחסוך round trips (תעבורה מצד הלקוח לצד השרת וחזרה) מיותרים. על מנת להחזיר נתונים עבור 2 משתמשים נקרא לכתובת הבאה: https://graph.facebook.com?ids=arjun,vernal
  • לעיתים כמות התוצאות המתקבלת היא גדולה ויש צורך בהגבלת כמות התוצאות המתקבלות. ה API מאפשר לנו להגדיר את כמות התוצאות בהן אנו מעוניינים ע"י שימוש בפרמטר count כפי שניתן לראות כאן:
    https://graph.facebook.com/me/likes?limit=3 במקרה הזה נקבל 3 תוצאות בלבד. ניתן גם לבקש קבלת תוצאות הרלוונטיות לתאריך מסויים או טווח תאריכים ע"י שימוש בפרמטרים since ו until.
  • פרסום ומחיקה – בעזרת ה API ניתן גם לפרסם או לחילופין למחוק מידע. לדוגמא, במידה ונרצה למחוק תגובה כלשהי (בהנחה שקיימת לנו ההרשאה לעשות זאת), נבצע זאת כך:

.

כפי שראינו ה Graph API מעניק לנו יכולות לתקשר ולבצע פעולות מול Facebook Platform. בהמשך נרחיב יותר על הפעולות השונות שניתן לבצע בעזרת ה API ונדגים כיצד ניתן לגרום לפקודות לעבוד וכיצד נשלבן בתוך האפליקציה אותה אנו מתכננים לפתח.

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

רשימת כל חלקי המדריך

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

אליקו יצחקי

אודות אליקו יצחקי

אליקו יצחקי הינו המייסד והעורך הראשי של הבלוג.

Bookmark and Share

11 תגובות »

  • דני כתב:

    מה עם החלקים הבאים ???

  • אליקו יצחקי
    אליקו יצחקי (כותב הפוסט) כתב:

    בקרוב…

  • כרמל כתב:

    מתי יפורסמו החלקים הבאים ?
    סוף סוף מדריך שמסביר מאפס איך העולם הזה של אפליקציות בפייסבוק עובדות
    כל הכבוד על היוזמה ושיתוף הידע :)
    כרמל .

  • דודי תמיר כתב:

    יש לי דף מעריצים בפייסבוק.
    אני משתמש באתר שלי בתוסף שמאפשר הטמעת סרטים ותמונות – לה"לן האתר של התוסף
    http://www.cooliris.com/yoursite/express/message
    ניתן לראות את התוסף "בפעולה" באתר שלי, בשורה האדומה בתחתית האתר!

    כעט, אני מעוניין להטמיע את התוסף (כלומר מריץ סרטונים\תמונות) בתוך לשונית FBML בעמוד המעריצים שלי בפייסבוק.

    החברה שלחה לי לינק המתאר את ביצוע הפעולה:
    http://blog.cooliris.com/2010/09/21/developers-how-to-embed-a-cooliris-wall-on-your-facebook-community-page/

    התברר לי, שלא מספיק קוד FBML, אלא פיתוח או רישום אפליקציה ולאחר מכן הטמעה שלה בעמוד המעריצים.

    אני לא בונה אתרים, ולא תכנת. אשמח לעזרה או הסבר מהחומר\לינקים ששמתי כאן.

  • אליקו יצחקי
    אליקו יצחקי (כותב הפוסט) כתב:

    עקב שינויים משמעותים שפייסבוק ביצעה לאחרונה ומתכננת לבצע בעתיד הקרוב (הורדת ה FBML למשל), מרבית המדריך לא יהיה רלוונטי או שיצטרך לעבור עדכון ולכן אני מעכב את פרסום החלקים הבאים עד שפייסבוק תפרט יותר בנושא והתמונה תתבהר.

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

  • אשרה כתב:

    שאלה –
    יצרתי אפליקציית פייסבוק מאוד פשוטה (מעין טופס צור קשר) אבל העברית לא מוצגת בפייסבוק. אשמח לרעיונות מאיפה זה יכול לנבוע…
    תודה רבה!

  • אשרה כתב:

    סליחה. הבעיה נפתרה. קידוד של המסמך…

  • שרה כתב:

    היי אליקו,
    תודה רבה על ההסברים… המדריך מאד מועיל.
    מה עם המשך המדריך?

  • จำหน่ายอินดักชั่น ฮีตเตอร์ כתב:

    จำหน่ายอินดักชั่น ฮีตเตอร์…

    המומחה » המדריך לפיתוח אפליקציות לפייסבוק חלק 5: Graph API…

  • protein shake Germany כתב:

    protein shake Germany…

    המומחה » המדריך לפיתוח אפליקציות לפייסבוק חלק 5: Graph API…

  • seo website optimization services כתב:

    seo website optimization services…

    המומחה » המדריך לפיתוח אפליקציות לפייסבוק חלק 5: Graph API…

הוספת תגובה

הוסף את תגובתך למטה או שלח טראקבק מאתרך. תוכל גם להרשם לעדכון על התגובות באמצעות RSS.