המדריך לפיתוח אפליקציות לפייסבוק חלק 5: Graph API
תגים: Facebook platform - מדריך לפיתוח אפליקציות לפייסבוק, פייסבוק, פיתוח אפליקציות לפייסבוק
על מנת לממש את האפשרויות הרבות הטמונות ב 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 (עבור האובייקטים המודגשים נדרש לספק את פרמטר הזיהוי המיוחד ולכן לחיצה עליהם תספק הודעת שגיאה)
- משתמשים (Users) – פרטי המשתמש של מרק צוקרברג,מייסד פייסבוק: https://graph.facebook.com/zuck
- דפים (Pages) – הדף של קוקה קולה: https://graph.facebook.com/cocacola
- אירועים (Events) – פרטי אירוע מסויים: https://graph.facebook.com/251906384206
- קבוצות (Groups) - פרטי קבוצה מסויימת: https://graph.facebook.com/2204501798
- אפליקציות (Applications) – פרטי האפליקציה גרפיטי: https://graph.facebook.com/2439131959
- הודעות סטטוסים (Status messages) – סטטוס שמשתמש פייסבוק פירסם בעמוד שלו: https://graph.facebook.com/367501354973
- תמונות (Photos) – תמונה מתוך הדף של קוקה קולה: https://graph.facebook.com/98423808305
- אלבומי תמונות (Photo albums) – פרטי אלבום בעמוד של קוקה קולה: https://graph.facebook.com/99394368305
- סרטונים (Videos) – פרטי סרטון מסויים: https://graph.facebook.com/614004947048
- הערות (Notes) -פרטי הערה: https://graph.facebook.com/122788341354
כל האובייקטים בגרף החברתי של פייסבוק קשורים אחד לשני בעזרת קשרים. משתמש X הוא מעריץ של קוקה קולה וגם חבר של משתמש Y.
פייסבוק מכנה את הקשרים האלה בתור connections. ה API מאפשר לנו לגשת לאותם קשרים בעזרת הקריאה הבאה:
להלן מספר דוגמאות המשתמשות בשדה המזהה me המתייחסות למשתמש שמבצע את הקריאה (דוגמאות אלה מצריכות שימוש בפרמטר הזיהוי ולכן יחזירו לכם הודעות שגיאה):
- רשימת החברים שלי: https://graph.facebook.com/me/friends
- רשימת האירועים שלי:https://graph.facebook.com/me/events
- רשימת הדפים שעשיתי להם לייק: https://graph.facebook.com/me/likes
ניתן גם לקבל קשרים נוספים כמו למשל רשימת המשתתפים באירוע מסויים:
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, טוויטר ודף הפייסבוק של הבלוג.

מה עם החלקים הבאים ???
בקרוב…
מתי יפורסמו החלקים הבאים ?
סוף סוף מדריך שמסביר מאפס איך העולם הזה של אפליקציות בפייסבוק עובדות
כל הכבוד על היוזמה ושיתוף הידע
כרמל .
יש לי דף מעריצים בפייסבוק.
אני משתמש באתר שלי בתוסף שמאפשר הטמעת סרטים ותמונות – לה"לן האתר של התוסף
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 למשל), מרבית המדריך לא יהיה רלוונטי או שיצטרך לעבור עדכון ולכן אני מעכב את פרסום החלקים הבאים עד שפייסבוק תפרט יותר בנושא והתמונה תתבהר.
דודי, לגבי שאלתך, לצערי יהיה לי קשה לפרט לך כיצד לעשות זאת כאן. ההוראות שצירפת בקישור הן די מפורטות. במידה ואתה לא מסתדר איתן תצטרך כנראה עזרה לא וירטואלית ממישהו שמבין בנושא.
שאלה –
יצרתי אפליקציית פייסבוק מאוד פשוטה (מעין טופס צור קשר) אבל העברית לא מוצגת בפייסבוק. אשמח לרעיונות מאיפה זה יכול לנבוע…
תודה רבה!
סליחה. הבעיה נפתרה. קידוד של המסמך…
היי אליקו,
תודה רבה על ההסברים… המדריך מאד מועיל.
מה עם המשך המדריך?
הוספת תגובה
עקבו אחרי הבלוג של המומחה
תגים
תגובות אחרונות
קבלת עידכונים במייל:
קטגוריות
פוסטים אחרונים
פוסטים אחרונים
הכי מוגבים
הכי נצפים