באמצעות Google Sites API בגרסה הקלאסית, האפליקציות שלכם יכולות לגשת לתוכן באתר Google, לפרסם אותו ולשנות אותו. בנוסף, האפליקציה יכולה לבקש רשימה של הפעילויות האחרונות, לאחזר היסטוריית גרסאות ולהעלות או להוריד קבצים מצורפים וקבצים.
קהל
במסמך הזה אנו מביאים בחשבון שהקוראים מבינים את הרעיונות הכלליים שמאחורי פרוטוקול Google Data APIs.
המסמך הזה מיועד למתכנתים שרוצים לכתוב אפליקציות לקוח שיכולות לקיים אינטראקציה עם Google Sites. היא מספקת סדרה של דוגמאות לאינטראקציות בסיסיות ב-Data API באמצעות XML/HTTP גולמי, עם הסברים. אחרי שתקראו את המסמך הזה, תוכלו לקרוא דוגמאות ספציפיות לשפות שונות בספריות הלקוח שלנו במדריכים האחרים בסרגל הניווט הימני.
במדריך העזרה מפורט מידע על החומר שמופיע במדריך הזה.
הרשאת בקשות
כשהאפליקציה שלך מבקשת נתוני משתמש שאינם ציבוריים, היא חייבת לכלול אסימון הרשאה. אסימון ההרשאה גם מזהה את האפליקציה שלכם ב-Google.
הסבר על פרוטוקולים של הרשאות
כדי לאשר בקשות, האפליקציה חייבת להשתמש בפרוטוקול OAuth 2.0. אין תמיכה בפרוטוקולים אחרים של הרשאות. אם באפליקציה נעשה שימוש בכניסה באמצעות חשבון Google, היבטים מסוימים של ההרשאות מטפלים בשבילכם.
הרשאת בקשות עם פרוטוקול OAuth 2.0
בקשות שנשלחות ל-Google Sites Data API עבור נתוני משתמש שאינם ציבוריים חייבות לקבל הרשאה על ידי משתמש מאומת.
הפרטים או ה"זרימה" של תהליך ההרשאה עם OAuth 2.0 עשויים להשתנות מעט, בהתאם לסוג האפליקציה שאתם מפתחים. התהליך הכללי הבא חל על כל סוגי האפליקציות:
- כשיוצרים את האפליקציה, רושמים אותה באמצעות Google API Console. לאחר הרישום, Google מספקת נתונים שיהיו דרושים לכם מאוחר יותר, כמו מזהה לקוח וסוד לקוח.
- מפעילים את Google Sites Data API במסוף Google API. (אם ממשק ה-API לא מופיע במסוף API, אפשר לדלג על השלב הזה).
- כשהאפליקציה צריכה גישה לנתונים של משתמשים, היא מעבירה ל-Google בקשת גישה בהיקף ספציפי.
- Google מציגה למשתמש מסך הסכמה ומבקשת לאשר לאפליקציה לשלוח בקשה לחלק מהנתונים שלו.
- אם המשתמש מסכים, האפליקציה מקבלת מ-Google אסימון גישה לטווח קצר.
- האפליקציה מבקשת את נתוני המשתמש ומצרפת לבקשה את אסימון הגישה.
- אם Google תקבע שהבקשה והאסימון תקפים, היא תחזיר את הנתונים המבוקשים.
חלק מתהליכי העבודה כוללים שלבים נוספים, כמו שימוש באסימוני רענון כדי לקבל אסימוני גישה חדשים. למידע מפורט על תהליכי העבודה לסוגים שונים של אפליקציות, ניתן לעיין בתיעוד של OAuth 2.0 של Google.
הפרטים לגבי היקפי OAuth 2.0 ב-Google Sites Data API:
https://sites.google.com/feeds/
כדי לבקש גישה באמצעות פרוטוקול OAuth 2.0, האפליקציה שלכם זקוקה למידע על ההיקף ולמידע ש-Google מספקת בזמן רישום האפליקציה (כמו מזהה לקוח וסוד לקוח).
ציון גרסה
בכל בקשה ששולחים ל-Google Sites Data API צריך לציין את הגרסה 1.4. כדי לציין מספר גרסה, משתמשים בכותרת ה-HTTP GData-Version
:
GData-Version: 1.4
לחלופין, אם אין לכם אפשרות להגדיר כותרות HTTP, תוכלו לציין את v=1.4
כפרמטר של שאילתה בכתובת ה-URL. עם זאת, עדיף להשתמש בכותרת ה-HTTP כשהדבר אפשרי.
הערה: ספריות הלקוח מספקות באופן אוטומטי כותרות מתאימות של גרסאות, לכן לא משתמשים בפרמטר של השאילתה v=1.4
כשמשתמשים בספריית לקוח.
עדכון אתר
אפשר להשתמש בפיד האתר כדי להציג רשימת אתרים ב-Google Sites שבבעלות המשתמש או שיש לו הרשאות צפייה, וגם כדי לשנות את השם של אתר קיים. בדומיינים של G Suite, אפשר להשתמש בו גם כדי ליצור או להעתיק אתר שלם.
אתרים עם דפי עסק
כדי לקבל רשימה של האתרים שיש למשתמש גישה אליהם, שולחים בקשה מאומתת מסוג GET
לכתובת ה-URL הבאה:
https://sites.google.com/feeds/site/domainName
פרמטר של פיד | תיאור |
---|---|
domainName | site או הדומיין של הדומיין המתארח ב-G Suite (למשל, example.com ). |
התשובה תכיל פיד עם רשימה של אתרים:
GET /feeds/site/domainName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> HTTP/1.1 200 OK <feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:gAcl="http://schemas.google.com/acl/2007" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0"> <id>https://sites.google.com/feeds/site/site</id> <updated>2009-12-02T17:47:34.406Z</updated> <title>Site</title> <link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="https://sites.google.com/feeds/site/site"/> <link rel="http://schemas.google.com/g/2005#post" type="application/atom+xml" href="https://sites.google.com/feeds/feeds/site/domainName"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName"/> <link rel="next" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/?start-index=2"/> <generator version="1" uri="http://sites.google.com/">Google Sites</generator> <openSearch:startIndex>1</openSearch:startIndex> <entry gd:etag="W/"CkUAQH4_eil7I2A9WxNaFk4.""> <id>https://sites.google.com/feeds/site/site/myTestSite</id> <updated>2009-12-01T01:17:21.042Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-01T01:17:21.042Z</app:edited> <title>myTestSite</title> <summary/> <link rel="alternate" type="text/html" href="http://sites.google.com/site/myTestSite/"/> <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/myTestSite"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myTestSite"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myTestSite"/> <sites:siteName>myTestSite</sites:siteName> <sites:theme>default</sites:theme> </entry> <entry gd:etag="W/"DkQGQHczfA9WxNaFk4.""> <id>https://sites.google.com/feeds/site/domainName/myOtherTestSite</id> <updated>2009-12-01T02:25:21.987Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-01T02:25:21.987Z</app:edited> <title>myOtherTestSite</title> <summary>A new site to hold memories</summary> <category scheme="http://schemas.google.com/sites/2008#tag" term="Memories Site"/> <link rel="alternate" type="text/html" href="http://sites.google.com/site/myOtherTestSite"/> <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/myOtherTestSite"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myOtherTestSite"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myOtherTestSite"/> <sites:siteName>myOtherTestSite</sites:siteName> <sites:theme>iceberg</sites:theme> </entry> ... </feed>
האתרים מופיעים בסדר אלפביתי.
יצירת אתרים חדשים
הערה: התכונה הזו זמינה רק לדומיינים ב-G Suite.
אפשר להקצות אתרים חדשים על ידי הוספת HTTP POST
אל פיד האתר, לדוגמה:
POST /feeds/site/example.com HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> <entry xmlns="http://www.w3.org/2005/Atom" xmlns:sites="http://schemas.google.com/sites/2008"> <title>Source Site</title> <summary>A new site to hold memories</summary> <sites:theme>slate</sites:theme> </entry>
הבקשה שלמעלה תיצור אתר חדש ב-Google Sites עם העיצוב 'לוח' בדומיין G Suite example.com
.
כתובת ה-URL של האתר תהיה http://sites.google.com/a/example.com/source-site/.
אם האתר ייווצר, השרת יגיב באמצעות 201 Created
.
רשומת התגובה תכיל רכיבים שנוספו על ידי השרת, כמו קישור לאתר, קישור לפיד ה-ACL של האתר, שם האתר, הכותרת והסיכום.
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:gAcl="http://schemas.google.com/acl/2007" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" gd:etag="W/"DEECR38l7I2A9WxNaF0Q.""> <id>https://sites.google.com/feeds/site/example.com/source-site</id> <updated>2009-12-02T23:31:06.184Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-02T23:31:06.184Z</app:edited> <title>New Test Site</title> <summary>A new site to hold memories</summary> <link rel="alternate" type="text/html" href="http://sites.google.com/a/example.com/source-site/"/> <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/example.com/source-site"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/source-site"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/source-site"/> <sites:siteName>source-site</sites:siteName> <sites:theme>slate</sites:theme> </entry>
העתקת אתר
הערה: התכונה הזו זמינה רק לדומיינים של G Suite.
אפשר לשכפל אתר קיים באותו אופן כמו יצירת אתר חדש. עם זאת, צריך לכלול את השדה <link>
עם הערך rel='source'
שמצביע על פיד האתר של האתר שרוצים להעתיק, ברשומה של הבקשה POST
ב-Atom. הקישור הזה יופיע בכל אתר שעותקתם. דוגמה להעתקת אתר:
POST /feeds/site/example.com HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> <entry xmlns="http://www.w3.org/2005/Atom"> <link rel="http://schemas.google.com/sites/2008#source" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/source-site"/> <title>Copy of New Test Site</title> <summary>A newer site to hold memories</summary> </entry>
הבקשה שלמעלה תועתק את האתר בכתובת http://sites.google.com/a/example.com/source-site/.
נקודות חשובות:
- אפשר להעתיק רק אתרים ותבניות של אתרים שבבעלות המשתמש המאומת.
- אפשר גם להעתיק תבנית של אתר. אתר הוא תבנית אם ההגדרה 'פרסום האתר הזה כתבנית' מסומנת בדף ההגדרות של Google Sites.
- אתם יכולים להעתיק אתר מדומיין אחר, בתנאי שאתם רשומים כבעלים באתר המקור.
עדכון המטא-נתונים של אתר
כדי לעדכן את הכותרת או את הסיכום של אתר, צריך לשלוח HTTP PUT
לקישור edit
של רשומת האתר.
לדוגמה, בדוגמה הבאה נעדכן את שם האתר הקודם ל-New Test Site2
ואת התיאור שלו ל-Newer description
.
PUT /feeds/site/example.com/source-site HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> <entry xmlns="http://www.w3.org/2005/Atom" xmlns:gAcl="http://schemas.google.com/acl/2007" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" gd:etag="W/"DEECR38l7I2A9WxNaF0Q.""> <id>https://sites.google.com/feeds/site/example.com/source-site</id> <updated>2009-12-02T23:31:06.184Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-02T23:31:06.184Z</app:edited> <title>New Test Site2</title> <summary>Newer description</summary> <category scheme="http://schemas.google.com/sites/2008#tag" term="Category"/> <link rel="alternate" type="text/html" href="http://sites.google.com/a/example.com/source-site/"/> <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/example.com/source-site"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/source-site"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/source-site"/> <sites:siteName>source-site</sites:siteName> </entry>
הוספת קטגוריות
הערה: התכונה הזו זמינה רק לדומיינים של G Suite.
G Suite לאתרים בדומיין כולל מטא-נתונים של קטגוריות שיעזרו לכם לסווג אתרים בדומיין. כדי להוסיף או לעדכן מטא נתונים של קטגוריה, יש לשלוח HTTP PUT
לקישור edit
ברשומת האתר שלך, שכולל תג category
. השורה המודגשת בדוגמה הבאה:
PUT /feeds/site/example.com/source-site HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> <entry xmlns="http://www.w3.org/2005/Atom" xmlns:gAcl="http://schemas.google.com/acl/2007" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" gd:etag="W/"DEECR38l7I2A9WxNaF0Q.""> <id>https://sites.google.com/feeds/site/example.com/source-site</id> <updated>2009-12-02T23:31:06.184Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-02T23:31:06.184Z</app:edited> <title>My Team website</title> <summary>This site contains contact information and a summary of major efforts our team owns</summary> <category scheme="http://schemas.google.com/sites/2008#tag" term="Team Site"/> <link rel="alternate" type="text/html" href="http://sites.google.com/a/example.com/my-team-site/"/> <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/example.com/my-team-site"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/my-team-site"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/my-team-site"/> <sites:siteName>my-team-site</sites:siteName> </entry>
בדוגמה הזו עורכים אתר קיים ומוסיפים את הקטגוריה 'אתר צוות'.
אפשר גם להוסיף מספר קטגוריות על ידי הוספת עוד תגי <category>
. אפשר לראות את השורות המודגשות בדוגמה הבאה:
PUT /feeds/site/example.com/my-team-site HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> <entry xmlns="http://www.w3.org/2005/Atom" xmlns:gAcl="http://schemas.google.com/acl/2007" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" gd:etag="W/"DEECR38l7I2A9WxNaF0Q.""> <id>https://sites.google.com/feeds/site/example.com/my-team-site</id> <updated>2009-12-02T23:31:06.184Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-02T23:31:06.184Z</app:edited> <title>My Team website</title> <summary>This site contains contact information and a summary of major efforts our team owns</summary> <category scheme="http://schemas.google.com/sites/2008#tag" term="Team Site/"> <category scheme="http://schemas.google.com/sites/2008#tag" term="Legal Department/"> <link rel="alternate" type="text/html" href="http://sites.google.com/a/example.com/my-team-site/"/> <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/example.com/my-team-site"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/my-team-site"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/my-team-site"/> <sites:siteName>my-team-site</sites:siteName> </entry>
בדוגמה הזו מוסיפים שתי קטגוריות: 'אתר צוות' ו'מחלקת משפט'.
מיפויים של כתובות אינטרנט
מיפויים של כתובות אינטרנט מאפשרים למשתמשים ב-Sites למפות את הדומיינים שלהם לאתר ב-Google Sites. לדוגמה, אפשר להשתמש ב-http://www.mydomainsite.com
במקום ב-http://sites.google.com/a/domain.com/mysite
. בהתאם למיקום שבו האתר מתארח, תוכלו לשנות באופן ידני את המיפויים של כתובות האינטרנט של האתר. מידע נוסף זמין במאמר במרכז העזרה.
אחזור של מיפויים של כתובות אינטרנט באתר
כדי להציג את המיפויים של כתובות האינטרנט של אתר מסוים, מאחזרים את הרשומה/הפיד של האתר עם הפרמטר with-mappings=true
:
GET /feeds/site/domainName?with-mappings=true HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> HTTP/1.1 200 OK <feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:gAcl="http://schemas.google.com/acl/2007" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0"> ... <entry gd:etag="W/"DkQGQHczfA9WxNaFk4.""> <id>https://sites.google.com/feeds/site/domainName/myOtherTestSite</id> <updated>2009-12-01T02:25:21.987Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-01T02:25:21.987Z</app:edited> <title>myOtherTestSite</title> <summary>A new site to hold memories</summary> <link rel="alternate" type="text/html" href="http://sites.google.com/site/myOtherTestSite"/> <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/myOtherTestSite"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myOtherTestSite"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myOtherTestSite"/> <link rel='webAddressMapping' href='http://www.mysitemapping.com'> <link rel='webAddressMapping' href='http://www.mysitemapping2.com'> <link rel='webAddressMapping' href='http://www.myothermapping.org'> </entry> ... </feed>
המיפויים הקיימים יופיעו כ-link
עם rel='webAddressMapping'. למשל, בדוגמה שלמעלה יש שלוש נקודות webAddressMapping
שמפנות לאתר http://sites.google.com/site/myOtherTestSite
.
שינוי המיפויים של כתובות אינטרנט
הערה: כל פעולות GET/POST/PUT צריכות לציין את הפרמטר with-mappings=true
כשעובדים עם מיפויים של כתובות אינטרנט. אם הפרמטר חסר, ערכי webAddressMapping
לא יוחזרו ברשומות האתר (GET) ולא יובאו בחשבון במהלך עדכון/הסרה של מיפויים (PUT) מרשומה.
כדי להוסיף, לעדכן או למחוק מיפוי, פשוט מציינים, משנים או מסירים קישור כזה בזמן יצירת אתרים חדשים או עדכון המטא-נתונים של אתר. חובה לכלול את הפרמטר with-mappings=true
ב-URI של פיד האתר.
הערה: כדי לעדכן את מיפויי הכתובות, צריך להיות לכם הרשאת אדמין לאתר או הרשאת אדמין דומיין, במקרה של אתר שמתארח ב-G Suite.
לדוגמה, הבקשה הבאה מעדכנת את המיפוי של http://www.mysitemapping.com
ל-http://www.my-new-sitemapping.com
, ומסירה את http://www.mysitemapping2.com
על ידי השמטת הקישור מהרשומה:
PUT /feeds/site/domainName?with-mappings=true HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> <entry gd:etag="W/"DkQGQHczfA9WxNaFk4.""> <id>https://sites.google.com/feeds/site/domainName/myOtherTestSite</id> <updated>2009-12-01T02:25:21.987Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-01T02:25:21.987Z</app:edited> <title>myOtherTestSite</title> <summary>A new site to hold memories</summary> <link rel="alternate" type="text/html" href="http://sites.google.com/site/myOtherTestSite"/> <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/myOtherTestSite"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myOtherTestSite"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myOtherTestSite"/> <link rel='webAddressMapping' href='www.my-new-sitemapping.com'> <!-- missing mapping2 will be deleted --> <link rel='webAddressMapping' href='http://www.myothermapping.org'> </entry>
הערה: אפשר לציין מיפויים של כתובות אינטרנט גם כשיוצרים או מעתיקים אתר.
פיד הפעילות
כדי לאחזר את הפעילות האחרונה (השינויים) באתר, אפשר לאחזר את פיד הפעילות. כל רשומה בפיד הפעילות מכילה מידע על שינוי שבוצע באתר.
כדי לשלוח שאילתות אל פיד הפעילות, שולחים HTTP GET
לכתובת ה-URL של פיד הפעילות:
https://sites.google.com/feeds/activity/domainName/siteName
פרמטר של פיד | תיאור |
---|---|
domainName | 'site ' או הדומיין של הדומיין שמתארח ב-G Suite (למשל example.com ). |
siteName | שם מרחב האינטרנט של האתר. השם מופיע בכתובת ה-URL של האתר (למשל, myCoolSite ). |
דוגמה לבקשה ותגובה:
GET /feeds/activity/site/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> HTTP/1.1 200 OK <?xml version="1.0" encoding="UTF-8"?> <feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/"> <id>https://sites.google.com/feeds/activity/site/siteName</id> <updated>2009-09-10T05:24:23.120Z</updated> <title>Activity</title> <link rel="alternate" type="text/html" href="http://sites.google.com/site/siteName/system/app/pages/recentChanges"/> <link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="https://sites.google.com/feeds/activity/site/siteName"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/activity/site/siteName"/> <generator version="1" uri="http://sites.google.com">Google Sites</generator> <openSearch:startIndex>1</openSearch:startIndex> <entry xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/"CU4GQ3szfSl7ImA9WxNRFUg.""> <id>https://sites.google.com/feeds/activity/site/siteName/940375996952876062</id> <updated>2009-09-10T03:38:42.585Z</updated> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#deletion" label="deletion"/> <title>home</title> <summary type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">User deleted <a href="http://sites.google.com/site/siteName/home">home</a> </div> </summary> <link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="https://sites.google.com/feeds/revision/site/siteName/5409745539831916487"/> <link rel="http://schemas.google.com/sites/2008#current" type="application/atom+xml" href="https://sites.google.com/feeds/content/site/siteName/5409745539831916487"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/activity/site/siteName/940375996952876062"/> <author> <name>User</name> <email>user@gmail.com</email> </author> </entry> <entry xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/"CU8DQn45fyl7ImA9WxNRFUg.""> <id>https://sites.google.com/feeds/activity/site/siteName/7165439066235480082</id> <updated>2009-09-10T03:37:53.027Z</updated> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#edit" label="edit"/> <title>home</title> <summary type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">User2 edited <a href="http://sites.google.com/site/siteName/home">home</a> </div> </summary> <link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="https://sites.google.com/feeds/revision/site/siteName/5409745539831916487"/> <link rel="http://schemas.google.com/sites/2008#current" type="application/atom+xml" href="https://sites.google.com/feeds/content/site/siteName/5409745539831916487"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/activity/site/siteName/7165439066235480082"/> <author> <name>User</name> <email>user@gmail.com</email> </author> </entry> <entry xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/"CU8AR3s4cSl7ImA9WxNRFUg.""> <id>https://sites.google.com/feeds/activity/site/siteName/127448462987345884</id> <updated>2009-09-10T03:37:26.539Z</updated> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#creation" label="creation"/> <title>home</title> <summary type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">User3 created <a href="http://sites.google.com/site/siteName/home">home</a> </div> </summary> <link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="https://sites.google.com/feeds/revision/site/siteName/5409745539831916487"/> <link rel="http://schemas.google.com/sites/2008#current" type="application/atom+xml" href="https://sites.google.com/feeds/content/site/siteName/5409745539831916487"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/activity/site/siteName/127448462987345884"/> <author> <name>User3</name> <email>user3@gmail.com</email> </author> </entry> </feed>
הערה: כדי לגשת לפיד הזה, עליכם להיות שותפים או בעלי האתר.
הלקוח צריך לשלוח את הכותרת הנכונה Authorization
ולהפנות לטוקן שהתקבל בבקשות הרשאה.
פיד גרסאות
כדי לאחזר את היסטוריית הגרסאות של כל רשומת תוכן, שולחים HTTP GET
לקישור הגרסה של הרשומה:
https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID
פרמטר פיד | תיאור |
---|---|
domainName | 'site ' או הדומיין של הדומיין שמתארח ב-G Suite (למשל example.com ). |
siteName | שם מרחב האינטרנט של האתר. השם מופיע בכתובת ה-URL של האתר (למשל, myCoolSite ). |
כדי למצוא את הקישור לתיקונים של דף/תגובה/קובץ מצורף/פריט נתון, קודם צריך לאחזר את הרשומה מפיד התוכן באמצעות הערך של CONTENT_ENTRY_ID. הרשומה שאוחזרה תכיל <atom:link>
אל פיד הגרסה.
לדוגמה:
<link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID"/>
דוגמה לבקשה ולתגובה:
GET /feeds/revision/domainName/siteName/CONTENT_ENTRY_ID HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> HTTP/1.1 200 OK <?xml version="1.0" encoding="UTF-8"?> <feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0"> <id>https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID</id> <updated>2009-09-10T04:33:35.337Z</updated> <title>Revisions</title> <link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID"/> <generator version="1" uri="http://sites.google.com">Google Sites</generator> <openSearch:startIndex>1</openSearch:startIndex> <entry gd:etag="W/"CU4GQmA9WxNRFUg.""> <id>https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID/2</id> <updated>2009-09-10T03:38:42.045Z</updated> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#webpage" label="webpage"/> <title>Home</title> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">Latest content here</div> </content> <link rel="alternate" type="text/html" href="http://sites.google.com/domainName/siteName/CONTENT_ENTRY_ID/system/app/pages/admin/compare?wuid=wuid%3Agx%3A4f67c7&rev1=2"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID/2"/> <author> <name>User</name> <email>user@gmail.com</email> </author> <sites:pageName>home</sites:pageName> <sites:revision>2</sites:revision> </entry> <entry gd:etag="W/"CU8DQ388eSl7ImA9WxNRFUg.""> <id>https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID/1</id> <updated>2009-09-10T03:37:52.171Z</updated> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#webpage" label="webpage"/> <title>Home</title> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">Older content here</div> </content> <link rel="alternate" type="text/html" href="http://sites.google.com/domainName/siteName/CONTENT_ENTRY_ID/system/app/pages/admin/compare?wuid=wuid%3Agx%3A4bc7&rev1=1"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID/1"/> <author> <name>User</name> <email>user@gmail.com</email> </author> <sites:pageName>home</sites:pageName> <sites:revision>1</sites:revision> </entry> </feed>
הערה: כדי לגשת אל הפיד הזה, אתם צריכים להיות שותפי עריכה או בעלים של האתר.
הלקוח צריך לשלוח את הכותרת הנכונה Authorization
ולהפנות לטוקן שהתקבל בבקשות להרשאה.
פיד תוכן
מתבצע אחזור של התוכן
פיד התוכן מציג את התוכן הנוכחי של האתרים. צריך לשלוח בקשת GET
מאומתת לכתובת ה-URL הבאה:
https://sites.google.com/feeds/content/domainName/siteName
פרמטר פיד | תיאור |
---|---|
domainName | 'site ' או הדומיין של הדומיין שמתארח ב-G Suite (למשל example.com ). |
siteName | שם מרחב האינטרנט של האתר. השם מופיע בכתובת ה-URL של האתר (למשל, myCoolSite ). |
התוצאה היא פיד שמפרט את הדף הראשון של רשומות התוכן באתר. כל רשומה בפיד מייצגת סוג אחר של רשומת תוכן, כמו webpage
, filecabinet
, attachment
, comment
וכו'. הרכיב <category scheme="http://schemas.google.com/g/2005#kind">
קובע את סוג הרשומה. רשימת הערכים הנתמכים של kind
מפורטת במדריך.
הערה: יכול להיות שהפיד הזה ידרוש אימות, ויכול להיות שלא. זה תלוי בהרשאות השיתוף של האתר.
אם האתר לא ציבורי, הלקוח צריך לשלוח את הכותרת הנכונה Authorization
(כפי שמוצג בדוגמה שלמעלה) ולהפנות לאסימון שהתקבל בקטע אימות בקשות.
GET /feeds/content/domainName/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> HTTP/1.1 200 OK <?xml version="1.0" encoding="UTF-8"?> <feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0"> <id>https://sites.google.com/feeds/content/domainName/siteName</id> <updated>2009-08-31T01:39:20.286Z</updated> <title>Content</title> <link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName"/> <link rel="http://schemas.google.com/g/2005#post" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName"/> <link rel="http://schemas.google.com/g/2005#batch" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/batch""/> <link rel="next" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/?start-index=2"/> <generator version="1" uri="http://sites.google.com">Google Sites</generator> <openSearch:startIndex>1</openSearch:startIndex> <entry gd:etag="W/"Ck8GQXk7fil7ImA9WxNSFk0.""> <id>https://sites.google.com/feeds/content/domainName/siteName/7322156894</id> <updated>2009-08-30T02:53:40.706Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-30T02:53:40.706Z</app:edited> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#webpage" label="webpage"/> <title>Subpage</title> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">Page html content here</div> </content> <link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/6492205817"/> <link rel="alternate" type="text" href="http://sites.google.com/site/siteName/subpage"/> <link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="https://sites.google.com/feeds/revision/domainName/siteName/7322156894"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/7322156894"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/7322156894"/> <author> <name>User</name> <email>user@gmail.com</email> </author> <sites:pageName>subpage</sites:pageName> <sites:revision>5</sites:revision> </entry> <entry gd:etag="W/"CkMBQH08fCl7ImA9WxNSFk0.""> <id>https://sites.google.com/feeds/content/domainName/siteName/5930635231</id> <updated>2009-08-30T02:47:31.374Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-30T02:47:31.374Z</app:edited> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#listitem" label="listpage"/> <title/> <link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/5930635231"/> <link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="https://sites.google.com/feeds/revision/domainName/siteName/5930635231"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/5930635231"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/5930635231"/> <author> <name>User</name> <email>user@gmail.com</email> </author> <sites:revision>1</sites:revision> <gs:field index="A" name="Issue/Feature">Implement cool feature X</gs:field> <gs:field index="B" name="Priority">P2</gs:field> <gs:field index="C" name="Owner"/> <gs:field index="D" name="Resolved"/> </entry> <entry gd:etag="W/"AkYHQ3ozcCl7ImA9WxJaE08.""> <id>https://sites.google.com/feeds/content/domainName/siteName/1265948545471894517</id> <updated>2009-08-03T19:35:32.488Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-03T19:35:32.488Z</app:edited> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#filecabinet" label="filecabinet"/> <title>files</title> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">Page html content here</div> </content> <link rel="alternate" type="text" href="https://sites.google.com/domainName/siteName/files"/> <link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="https://sites.google.com/feeds/revision/domainName/siteName/12671894517"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/12671894517"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/12671894517"/> <author> <name>User</name> <email>user@gmail.com</email> </author> <gd:feedLink href="httpn://sites.google.com/feeds/content/domainName/siteName?parent=12671894517"/> <sites:pageName>files</sites:pageName> <sites:revision>1</sites:revision> </entry> ... </feed>
הערה: אלה רק התוצאות הראשונות. כדי לעבור בין הדפים של פיד התוכן כולו, לוחצים על הקישור 'הבא' בפיד:
<link rel="next" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/?start-index=2"/>
הסבר על הרכיבים הנפוצים ב-Atom זמין במאמר העזרה של Google Data Protocol.
הרכיבים שיש להם הגדרה ספציפית ל-API של Google Sites בגרסה הקלאסית של Google Sites מתוארים בהמשך. לרשויות מסוימות יהיו מאפיינים נוספים (לא מפורטים בהמשך), ולרשויות אחרות לא יהיו. לדוגמה, ערך listitem
יכול לכלול רכיבי <gs:field>
, בעוד שרשומת webpage
לא יכולה לכלול אותו.
רכיב | תיאור |
---|---|
<content ...> | הטקסט הפנימי הוא גוף ה-HTML של הדף. בחלק מהרשומות (למשל, קבצים מצורפים), הרכיב הזה יכיל מאפיין src שמצביע אל הקובץ. |
<link rel="alternate" ...> | מקשרים לדף או לפריט ב-Google Sites. |
<link rel="http://schemas.google.com/sites/2008#revision" ...> | המאפיין href מפנה אל פיד הגרסה של הרשומה. |
<link rel="http://schemas.google.com/sites/2008#parent" ...> | המאפיין href מפנה לרשומה ההורה של הרשומה. |
<link rel="http://schemas.google.com/sites/2008#template" ...> | המאפיין href מפנה לדף התבנית של הרשומה. |
<category scheme="http://schemas.google.com/g/2005#kind" ...> | label הוא סוג הרשומה. |
<category term="http://schemas.google.com/g/2005#template" ...> | label=template שמציין את הרשומה הוא תבנית. |
<gd:feedLink> | המאפיין href מפנה לצאצאים של הורה הרשומה. |
<sites:pageName> | שם מרחב האינטרנט של הדף, התואם לשם שמופיע בכתובת ה-URL של הדף. |
<sites:revision> | מספר הגרסה הנוכחי. |
דוגמאות לשאילתות של פידים של תוכן
אפשר לחפש בפיד התוכן באמצעות חלק מפרמטרים רגילים של שאילתות ב-Google Data API ופרמטרים ספציפיים ל-Sites API הקלאסי. למידע מפורט יותר ולרשימה מלאה של הפרמטרים הנתמכים, עיינו במדריך העזרה.
אחזור של סוגים ספציפיים של רשומות
כדי לאחזר רק רשומה מסוג מסוים, משתמשים בפרמטר kind
. בדוגמה הזו מוצגים רק webpage
רשומות:
GET /feeds/content/domainName/siteName?kind=webpage
כדי להחזיר יותר מסוג אחד של רשומה, צריך להפריד בין כל kind
באמצעות ','. בדוגמה הזו מוחזר רשומה מסוג filecabinet
ורשומה מסוג listpage
:
GET /feeds/content/domainName/siteName?kind=filecabinet,listpage
לחלופין, אפשר להשתמש בפורמט הסטנדרטי לשאילתה /-/category
של נתוני Google במקום בפרמטר kind
:
GET /feeds/content/domainName/siteName/-/filecabinet|listpage
המערכת מאחזרת תבניות דפים
בדוגמה הזו מוצגים רק template
דפים:
GET /feeds/content/domainName/siteName/-/template
כדי להציג את כל סוגי הרשומות ולכלול את הדפים template
, משתמשים באפשרות הבאה:
GET /feeds/content/domainName/siteName/-/template|-template
אחזור דף לפי נתיב
אם אתם יודעים מהו הנתיב היחסי של דף באתר של Google, תוכלו להשתמש בפרמטר path
כדי לאחזר את הדף הספציפי הזה.
הדוגמה הזו תחזיר את הדף שנמצא בכתובת http://sites.google.com/site/siteName/path/to/the/page
:
GET /feeds/content/domainName/siteName?path=/path/to/the/page
אחזור כל הרשומות בדף הורה
אם אתם יודעים מהו מזהה הרשומה של דף כלשהו, תוכלו להשתמש בפרמטר parent
כדי לאחזר את כל רשומות הצאצא שלו (אם יש כאלה):
GET /feeds/content/domainName/siteName?parent=CONTENT_ENTRY_ID
כולל טיוטות או רשומות שנמחקו
כדי לכלול רשומות שנוספו כטיוטה או רשומות שנמחקו, משתמשים בפרמטרים include-drafts
או include-deleted
, בהתאמה.
הדוגמה הזו כוללת טיוטות של רשומות בפיד התוכן:
GET /feeds/content/domainName/siteName?include-drafts=true
חיפוש טקסט מלא
כדי לחפש בכל התוכן של אתר, משתמשים בפרמטר q
כדי להפעיל חיפוש טקסט מלא:
GET /feeds/content/domainName/siteName?q=Text%20I%20am%20looking%20for
יצירת תוכן
אפשר ליצור תוכן חדש (דפי אינטרנט, דפי רשימה, דפי ארון קבצים, דפי הודעות וכו') על ידי שליחת POST
HTTP לפיד התוכן:
https://sites.google.com/feeds/content/domainName/siteName
רשימה של סוגי הרשומות הנתמכים מופיעה בפרמטר kind
במדריך העזר.
יצירת פריטים / דפים חדשים
בדוגמה הזו נוצר webpage
חדש ברמה העליונה של האתר, שכולל קטע XHTML לגוף הדף ומגדיר את כותרת הכותרת כ-'New WebPage Title':
POST /feeds/content/domainName/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> Content-Length: 328 Content-Type: application/atom+xml <entry xmlns="http://www.w3.org/2005/Atom"> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#webpage" label="webpage"/> <title>New Webpage Title</title> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">HTML body goes here</div> </content> </entry>
אם הפעולה בוצעה ללא שגיאות, השרת ישיב עם 201 Created
ועותק של הרשומה.
יצירת פריטים/דפים בנתיבים של כתובות URL מותאמות אישית
כברירת מחדל, הדוגמה הקודמת תיווצר עם כתובת ה-URL http://sites.google.com/domainName/siteName/new-webpage-title
, והכותרת של הדף היא 'כותרת חדשה של דף אינטרנט'. כלומר, ה-<atom:title>
מנורמלי ל-new-webpage-title
בכתובת ה-URL.
כדי להתאים אישית את נתיב כתובת ה-URL של דף, אפשר להגדיר את האלמנט <sites:pageName>
.
בדוגמה הזו נוצר filecabinet
חדש עם כותרת הדף 'File Storage', אבל הדף נוצר מתחת לכתובת ה-URL http://sites.google.com/domainName/siteName/files
על ידי ציון הרכיב <sites:pageName>
.
POST /feeds/content/domainName/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> Content-Length: 393 Content-Type: application/atom+xml <entry xmlns="http://www.w3.org/2005/Atom" xmlns:sites="http://schemas.google.com/sites/2008"> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#filecabinet" label="filecabinet"/> <title>File Storage</title> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">A list of files is below.</div> </content> <sites:pageName>files</sites:pageName> </entry>
השרת משתמש בכללי הקדימות הבאים כדי לתת שם לנתיב כתובת ה-URL של דף:
<sites:pageName>
, אם הוא קיים. חייב לעמוד בתנאיa-z, A-Z, 0-9, -, _
.<atom:title>
, לא יכול להיות null אם pageName לא קיים. נירמול הוא לחתוך + לכווץ רווחים לבנים ל-'-' ולהסיר תווים שלא תואמים ל-a-z, A-Z, 0-9, -, _
.
לדוגמה, השרת 'Custom_Page2' יתקבל.
יצירת דפי משנה
כדי ליצור דפי משנה (צאצאים) בדף הורה, צריך לכלול את הערך <link rel="http://schemas.google.com/sites/2008#parent">
ברשומה החדשה ב-Atom. מגדירים את המאפיין href
של הקישור לקישור העצמי של רשומת ההורה.
בדוגמה הזו נוצר announcement
חדש עם הכותרת 'הודעה', מתחת לדף הורה של הודעה עם מזהה הרשומה PARENT_ENTRY_ID
. תוכן XHTML לגוף הדף כלול גם הוא:
POST /feeds/content/domainName/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> Content-Length: 470 Content-Type: application/atom+xml <entry xmlns="http://www.w3.org/2005/Atom"> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement"/> <link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/PARENT_ENTRY_ID"/> <title>announcement</title> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">This weekend. My place.</div> </content> </entry>
תבניות של דפים
יצירת תבניות דפים
התהליך ליצירת תבנית דף זהה לתהליך יצירת פריטים או דפים חדשים ויצירת דפי משנה. ההבדל הוא בהוספת ה-category
עם המונח והתווית שמוגדרים כ-'http://schemas.google.com/g/2005#template' ו-'template', בהתאמה.
בדוגמה הזו נוצרת תבנית webpage
חדשה.
POST /feeds/content/domainName/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> Content-Length: 464 Content-Type: application/atom+xml <entry xmlns="http://www.w3.org/2005/Atom" xmlns:sites="http://schemas.google.com/sites/2008"> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#webpage" label="webpage"/> <category scheme="http://schemas.google.com/g/2005#labels" term="http://schemas.google.com/g/2005#template" label="template"/> <title>Webpage Template</title> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">This weekend. My place.</div> </content> </entry>
יצירת דפים מתבנית
בדומה ליצירת תבניות דפים, אפשר ליצור דף חדש מתבנית על ידי הכללת <link>
עם rel='http://schemas.google.com/sites/2008#template' שמצביע על הקישור העצמי של תבנית הדף.
בדוגמה הזו נוצר דף filecabinet
חדש מתבנית דף קיימת שמגדירה ארון קבצים.
POST /feeds/content/domainName/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> Content-Length: 464 Content-Type: application/atom+xml <entry xmlns="http://www.w3.org/2005/Atom" xmlns:sites="http://schemas.google.com/sites/2008"> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#filecabinet" label="filecabinet"/> <title>File Cabinet Page From Template</title> <link rel='http://schemas.google.com/sites/2008#template' type='application/atom+xml' href='https://sites.google.com/feeds/content/domainName/siteName/ENTRY_ID'/> </entry>
הערה: למרות שבתבנית <category>
, עדיין צריך לכלול ערך אחד ברשומה. חשוב גם לזכור שאם תכללו את הרכיב <content>
, השרת ידחה אותו.
העלאת קבצים
בדומה ל-Google Sites, ה-API מאפשר לכם להעלות קבצים לדפים של ספריית הקבצים ולדפי הורה.
כדי להעלות קובץ מצורף לחשבון הורה, שולחים בקשת HTTP POST
לכתובת ה-URL של פיד התוכן:
https://sites.google.com/feeds/content/domainName/siteName
גוף הבקשה POST
צריך להיות בקשה MIME מרובת חלקים, כדי לשלב את תוכן הקובץ עם <atom:entry>
שמכיל את המטא-נתונים של הקובץ המצורף. השדה <atom:entry>
צריך להפנות לקישור העצמי של הרשומה ההורה, כדי לציין איפה הקובץ המצורף יווצר.
מידע נוסף זמין במאמר יצירת דפי משנה.
הקבצים מועלים
דוגמה להעלאה של קובץ PDF לארון קבצים עם המזהה PARENT_ENTRY_ID
. הקובץ המצורף ייווצר עם השם 'קובץ PDF' ותיאור (אופציונלי) 'חבילת משאבי משאבי אנוש'.
POST /feeds/content/domainName/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> Content-Length: 7221984 Content-Type: multipart/related; boundary=END_OF_PART --END_OF_PART Content-Type: application/atom+xml <entry xmlns="http://www.w3.org/2005/Atom"> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#attachment" label="attachment"/> <link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/PARENT_ENTRY_ID"/> <title>PDF File</title> <summary>HR packet</summary> </entry> --END_OF_PART Content-Type: application/pdf ... pdf contents here ... --END_OF_PART--
אם ההעלאה תתבצע בהצלחה, השרת ישיב עם 201 Created
וקובץ של הרשומה החדשה של הקובץ המצורף.
העלאת קובץ מצורף לתיקייה
כדי להעלות קובץ מצורף לתיקייה קיימת ב-filecabinet
, צריך לכלול קטגוריה עם המאפיין 'term' המוגדר לשם התיקייה:
<category scheme="http://schemas.google.com/sites/2008#folder" term="FolderName">
קבצים מצורפים מהאינטרנט
קבצים מצורפים באינטרנט הם סוגים מיוחדים של קבצים מצורפים. בעיקרון, הם קישורים לקבצים אחרים באינטרנט שאפשר להוסיף לרשימות בארכיון. התכונה הזו דומה לשיטת ההעלאה 'הוספת קובץ לפי כתובת URL' בממשק המשתמש של Google Sites.
הערה: אפשר ליצור קבצים מצורפים באינטרנט רק בתוך ארון קבצים. אי אפשר להעלות אותם לדפים מסוגים אחרים.
בדוגמה הזו נוצר webattachment
מתחת לארונות הקבצים שיש אליו הפניה מהמזהה FILECABINET_ENTRY_ID
.
השם והתיאור (אופציונלי) מוגדרים כ-'GoogleLogo' ו-'nice colors', בהתאמה.
POST /feeds/content/domainName/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> Content-Type: application/atom+xml Content-Length: 531 <entry xmlns="http://www.w3.org/2005/Atom"> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#webattachment" label="webattachment"/> <link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/FILECABINET_ENTRY_ID"/> <title>GoogleLogo</title> <summary>nice colors</summary> <content type="image/gif" src="http://www.google.com/images/logo.gif"></content> </entry>
הפונקציה POST
יוצרת קישור בארון הקבצים של המשתמש שמפנה לתמונה בכתובת 'http://www.google.com/images/logo.gif'.
עדכון התוכן
אפשר לערוך את המטא-נתונים (כותרת, pageName וכו') ואת תוכן הדף של כל דף באמצעות בקשת PUT
אחת לקישור edit
.
גוף הבקשה צריך להכיל רשומת Atom שמתארת את הדף המעודכן. היוצא מן הכלל הוא רשומת קובץ מצורף, שבה ניתן להשתמש ברשומה רק כדי לעדכן את המטא-נתונים של הקובץ המצורף.
כדי לשנות את התוכן של הקובץ המצורף, פשוט צריך לכלול את הנתונים הגולמיים כגוף של בקשת PUT
לקישור edit-media
של הקובץ המצורף. אפשר גם לעדכן את המטא-נתונים ואת תוכן הקובץ המצורף בו-זמנית באמצעות בקשה MIME מרובת חלקים.
כדי להצהיר שהעדכון שלך לא מחליף שינויים של לקוח אחר, צריך לכלול את ערך ה-ETag של הרשומה המקורית. אפשר לעשות זאת על ידי ציון הערך של ETag בכותרת If-Match
של HTTP, או על ידי הוספת המאפיין gd:etag
של הרשומה המקורית לרשומה המעודכנת. כדי לקבוע את ערך ה-ETag של הרשומה המקורית, יש לבדוק את המאפיין gd:etag
של הרכיב <entry>
.
ברשומות של מדיה, ה-ETag של המדיה עשוי להיות זמין במאפיין gd:etag
של הקישור edit-media
.
כדי לעדכן את הרשומה, גם אם מישהו אחר עדכן אותה מאז האחזור שלה, צריך להשתמש ב-If-Match: *
ולא לכלול את ה-ETag. מידע נוסף על תגי ETag זמין במדריך העזרה של Google Data APIs.
עדכון מטא נתונים או תוכן HTML של פריט
כדי לעדכן את המטא-נתונים או את תוכן ה-HTML של רשומה, שולחים HTTP PUT
לקישור edit
של הרשומה.
בדוגמה הבאה מתואר עדכון של רשומה listpage
(שמיוצגת על ידי המזהה שלה, ENTRY_ID
) עם השינויים הבאים:
- השם השתנה ל'תוכן מעודכן'
- תוכן HTML מעודכן
- הכותרת של העמודה הראשונה ברשימה עודכנה ל'בעלים'
- נתיב כתובת ה-URL של הדף משתנה על ידי הרכיב
<sites:pageName>
PUT /feeds/content/domainName/siteName/ENTRY_ID Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> Content-Length: 816 Content-Type: application/atom+xml <entry xmlns="http://www.w3.org/2005/Atom" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/"CEEBRn0ymA9WxJWEUw.""> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#listpage" label="listpage"/> <title>Updated Title</title> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">Updated Content</div> </content> <gs:worksheet name="listpage"/> <gs:header row="1"/> <gs:data startRow="2"> <gs:column index="A" name="Owner"/> <gs:column index="B" name="Decription"/> <gs:column index="C" name="Completed"/> </gs:data> <sites:pageName>newPagePath</sites:pageName> </entry>
הערה: הרשומה (כפי שהוחזרה על ידי השרת) תכלול יותר רכיבים מהדוגמה שלמעלה.
החלפת התוכן של קובץ מצורף
בהמשך מופיעה דוגמה להחלפת התוכן של קובץ מצורף, בלי לשנות את המטא-נתונים שלו. מכיוון שהבקשה מכילה תוכן חדש, המערכת משתמשת בקישור edit-media
של הרשומה של הקובץ המצורף.
PUT /feeds/media/content/domainName/siteName/ATTACHMENT_ENTRY_ID Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> Content-Length: 70581 Content-Type: application/msword ... doc contents here ...
עדכון המטא-נתונים והתוכן של הקובץ המצורף
בדוגמה הבאה ניתן לראות עדכון של המטא-נתונים של קובץ מצורף ושל התוכן שלו בו-זמנית. השם של הקבצים המצורפים ישתנה ל'כותרת חדשה' והתוכן של הקובץ יוחלף בתוכן של קובץ ZIP. מכיוון שהבקשה מכילה תוכן קובץ חדש, נעשה שימוש בקישור edit-media
של רשומת הקובץ המצורף.
שימו לב שהכללת ה-ETag של המטא-נתונים מספקת If-Match
משתמע גם בשביל תוכן המדיה, כי כל עדכון בתוכן המדיה גורם לשינוי ב-ETag של המטא-נתונים.
PUT /feeds/media/content/domainName/siteName/ATTACHMENT_ENTRY_ID Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> Content-Type: multipart/related; boundary="END_OF_PART" --END_OF_PART Content-Type: application/atom+xml <?xml version='1.0' encoding='UTF-8'?> <entry xmlns="http://www.w3.org/2005/Atom" xmlns:gd="http://schemas.google.com/g/2005" gd:etag="BxAaTxRZAyp7ImBq"> <link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/ATTACHMENT_ENTRY_ID"/> <title>New Title</title> </entry> --END_OF_PART Content-Type: application/zip ... zip contents here ... --END_OF_PART
מחיקת תוכן
כדי להסיר פריט מאתר שנוצר באמצעות Google Sites, קודם מאחזרים את הרשומה ואז שולחים בקשת DELETE
לכתובת ה-URL של הרשומה edit
. זוהי אותה כתובת URL שמשמשת לעדכון המטא-נתונים או תוכן ה-HTML של פריט.
DELETE /feeds/content/domainName/siteName/ENTRY_ID Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> If-Match: <ETag or * here>
אם הרשומה נמחקה, השרת מגיב באמצעות HTTP 200 OK
.
כדי לוודא שלא מוחקים רשומה ששונתה על ידי לקוח אחר מאז האחזור שלה, צריך לכלול כותרת If-Match
ב-HTTP שמכילה את ערך ה-ETag של הרשומה המקורית. כדי לקבוע את ערך ה-ETag של הרשומה המקורית, בודקים את המאפיין gd:etag
של הרכיב <entry>
.
אם רוצים למחוק את הרשומה גם אם מישהו אחר עדכן אותה מאז שאחזרתם אותה, צריך להשתמש ב-If-Match: *
ולא לכלול את ה-ETag. (במקרה כזה, אין צורך לאחזר את הרשומה לפני שמוחקים אותה).
מידע נוסף על תגי ETag זמין במדריך העזרה של Google Data APIs.
הורדת קבצים מצורפים
ברגע שיש לכם רשומת קובץ מצורף, אתם יכולים להוריד את הקובץ על ידי שליחת HTTP מאומת GET
לקישור של הרשומה בשביל <content>
src. דוגמה לקישור תוכן של קובץ PDF:
<content type="application/pdf" src="http://502377765-a-google-com-s-sites.googlegroups.com/feeds/media/content/domainName/siteName/678942036"/>
פיד ACL
סקירה כללית של הרשאות שיתוף (ACL)
כל רשומת ACL בפיד ה-ACL מייצגת תפקיד גישה של ישות מסוימת, בין אם משתמש, קבוצת משתמשים, דומיין או הגישה שמוגדרת כברירת מחדל (אתר ציבורי). הרשאות הגישה יוצגו רק לישויות עם הרשאת גישה מפורשת – רשומה אחת תוצג לכל כתובת אימייל בחלונית 'אנשים עם גישה' במסך השיתוף בממשק המשתמש של Google Sites. לכן, מנהלי דומיינים לא יוצגו, למרות שיש להם גישה מרומזת לאתר.
תפקידים
רכיב התפקיד מייצג רמת גישה שיכולה להיות לישות. יש ארבעה ערכים אפשריים לאלמנט gAcl:role
:
- reader – צופה (שווה ערך להרשאת קריאה בלבד).
- author – שותף עריכה (מקביל לגישת קריאה/כתיבה).
- owner (בעלים) – בדרך כלל האדמין של האתר (שווה ערך להרשאת קריאה/כתיבה).
טווחים
רכיב ההיקף מייצג את הישות שיש לה את רמת הגישה הזו. יש חמישה סוגים אפשריים של האלמנט gAcl:scope
:
- user – ערך של כתובת אימייל, למשל user@gmail.com.
- group – כתובת אימייל של קבוצת Google, למשל 'group@domain.com'.
- domain — שם דומיין ב-G Suite, לדוגמה 'domain.com'.
- preorder — משתמש שהוזמן לאתר, אך עדיין לא נוסף לרשימת ה-ACL של האתר. (האפשרות הזו לא זמינה אם מציינים gdata בגרסה 1.3 ומטה).
- default – יש רק היקף אחד אפשרי מסוג 'default', שאין לו ערך (למשל
<gAcl:scope type="default">
). ההיקף הספציפי הזה קובע את הגישה של כל משתמש כברירת מחדל באתר ציבורי.
הערה: לא ניתן להגדיר לדומיינים ערך gAcl:role
של 'בעלים', אלא רק 'קוראים' או 'כותבים'.
מידע על ההיקף 'הזמנה'.
ה-API מחזיר את היקף ההזמנה כשמוסיפים ל-ACL משתמש אחד או יותר שעדיין אין להם חשבון Google. ה-API מחזיר כתובת URL עם אסימון מוטמע, שצריך לספק למשתמשים המוזמנים כדי לאפשר להם לאשר את ההזמנה.
שיטת ההזמנה הזו מאפשרת לכם להזמין משתמשים שאינם משתמשי Google בלי לדעת מראש באיזו כתובת אימייל הם רוצים להשתמש. כל עוד המשתמשים לוחצים על כתובת ה-URL של ההזמנה עם האסימון המוטמע, הם יכולים להירשם לקבלת גישה באמצעות כל כתובת אימייל שהם רוצים. בנוסף, כמה משתמשים יכולים להשתמש בכתובת ה-URL הזו כדי לקבל את ההזמנה, כך שזו יכולה להיות אפשרות שימושית אם מזמינים משתמש אחד או קבוצה של משתמשים.
הערה: ההיקף 'הזמנה' זמין רק בגרסה 1.4 ואילך של gdata. האפשרות הזו לא תפעל אם מציינים באופן מפורש 1.3 ואילך.
אחזור הפיד של ACL
אפשר להשתמש בפיד ה-ACL כדי לשלוט בהרשאות השיתוף של אתר, והוא נגיש דרך ה-URI הבא:
https://sites.google.com/feeds/acl/site/domainName/siteName
פרמטר של פיד | תיאור |
---|---|
domainName | 'site ' או הדומיין של הדומיין שמתארח ב-G Suite (למשל example.com ). |
siteName | השם של מרחב האינטרנט של האתר. ניתן למצוא אותו בכתובת ה-URL של האתר (למשל myCoolSite ). |
חשוב לציין שכל רשומה בפיד האתר מכילה קישור לפיד הזה:
<link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName"/>
כדי לאחזר את הרשאות השיתוף של אתר, שולחים HTTP GET
אל ה-URI של פיד ה-ACL:
GET /feeds/acl/site/domainName/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here>
השרת יגיב עם 200 OK
ופיד של רשומות ACL:
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:gAcl="http://schemas.google.com/acl/2007" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0"> <id>https://sites.google.com/feeds/acl/site/domainName/siteName</id> <updated>2009-12-03T22:01:05.963Z</updated> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/> <title>Acl</title> <link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName"/> <link rel="http://schemas.google.com/g/2005#post" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName"/> <generator version="1" uri="http://sites.google.com">Google Sites</generator> <openSearch:startIndex>1</openSearch:startIndex> <entry> <id>https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserA%40gmail.com</id> <updated>2009-12-03T22:01:05.963Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-03T22:01:05.963Z</app:edited> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserA%40google.com"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserA%40google.com"/> <gAcl:scope type="user" value="userA@google.com"/> <gAcl:role value="owner"/> </entry> <entry> <id>https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserB%40gmail.com</id> <updated>2009-12-03T22:01:05.963Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-03T22:01:05.963Z</app:edited> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserB%40gmail.com"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserB%40gmail.com"/> <gAcl:scope type="user" value="userB@gmail.com"/> <gAcl:role value="writer"/> </entry> <entry> <id>https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserC%40gmail.com</id> <updated>2009-12-03T22:01:05.963Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-03T22:01:05.963Z</app:edited> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserC%40gmail.com"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserC%40gmail.com"/> <gAcl:scope type="user" value="userC@gmail.com"/> <gAcl:role value="reader"/> </entry> ... </feed>
שיתוף אתר
הפיד של ה-ACL מקבל בקשות GET
, POST
ו-PUT
. כדי להוסיף תפקיד חדש אל פיד ה-ACL, פשוט שולחים בקשת POST
אל פיד ה-ACL של האתר.
הערה: ייתכן שתוכלו לשתף רשימות ACL מסוימות רק אם הדומיין מוגדר כך שיאפשר את ההרשאות האלה (למשל, אם מופעל שיתוף עם גורמים מחוץ לדומיין עבור דומיינים של G Suite וכו').
הדוגמה הבאה מוסיפה לאתר שותף חדש (כותב):
POST /feeds/acl/site/domainName/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> <entry xmlns="http://www.w3.org/2005/Atom" xmlns:gAcl='http://schemas.google.com/acl/2007'> <category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/acl/2007#accessRule'/> <gAcl:role value='writer'/> <gAcl:scope type='user' value='new_writer@example.com'/> </entry>
201 Created
והרשומה החדשה מוחזרים לאחר הוספה מוצלחת:
<entry> <id>https://sites.google.com/feeds/acl/site/domainName/siteName/user%3Anew_writer%40example.com</id> <updated>2009-12-03T22:01:05.963Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-03T22:01:05.963Z</app:edited> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3Anew_writer%40example.com"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3Anew_writer%40example.com"/> <gAcl:role value='writer'/> <gAcl:scope type='user' value='new_writer@example.com'/> </entry>
הזמנת משתמשים באמצעות ההיקף 'הזמנה'
אם תוסיפו משתמשים שאין להם חשבונות Google, ה-API יחזיר כתובת URL שצריך לספק למשתמשים שאתם רוצים להזמין. לאחר לחיצה על כתובת ה-URL, המשתמש יוכל לקבל גישה לאתר על ידי כניסה באמצעות חשבון קיים או יצירת חשבון חדש.
הזמנה מוצלחת מחזירה את הערך 201 Created
ורשומה חדשה שכוללת את כתובת ה-URL שצריך להעביר למשתמש:
<entry> <id>https://sites.google.com/feeds/acl/site/domainName/siteName/user%3Anew_invite%40example.com</id> <updated>2009-12-03T22:01:05.963Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-03T22:01:05.963Z</app:edited> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/> <link rel="http://schemas.google.com/sites/2008#invite" type="text/html"href="domainName/siteName?invite=inviteToken"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3Anew_invite%40example.com"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3Anew_invite%40example.com"/> <gAcl:role value='writer'/> <gAcl:scope type='invite' value='new_invite%40example.com'/> </entry>
שיתוף ברמת הקבוצה והדומיין
בדומה לשיתוף אתר עם משתמש יחיד, אפשר לשתף אתר עם קבוצה ב-Google או עם דומיין של G Suite. הערכים הנדרשים של scope
מפורטים בהמשך.
שיתוף עם כתובת אימייל של קבוצה:
<gAcl:scope type="group" value="group@example.com"/>
שיתוף עם כל הדומיין:
<gAcl:scope type="domain" value="example.com"/>
יש תמיכה בשיתוף ברמת הדומיין רק בדומיינים של G Suite, ורק בדומיין שבו האתר מתארח. לדוגמה, http://sites.google.com/a/domain1.com/siteA יכול לשתף את האתר כולו רק עם domain1.com ולא עם domain2.com. אתרים שלא מתארחים בדומיין של G Suite (למשל http://sites.google.com/site/siteB) לא יכולים להזמין דומיינים.
שינוי הרשאות השיתוף
כדי לעדכן רשומה ב-ACL, משנים את הרשומה לפי הצורך ושולחים בקשת HTTP PUT
לקישור edit
של הרשומה. הקישור הוא פשוט רכיב <link>
, שבו מאפיין ה-rel מוגדר כ-edit. לפי הדוגמה הקודמת, הקישור הזה הוא:
<link rel='edit' type='application/atom+xml' href='https://sites.google.com/feeds/acl/site/domainName/siteName/user%3Anew_writer%40example.com'/>
קטע הקוד הבא משנה את התפקיד של new_writer@gmail.com
ל'קורא':
PUT /feeds/acl/site/domainName/siteName/user%3Anew_writer%40example.com HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> <entry xmlns="http://www.w3.org/2005/Atom" xmlns:gAcl='http://schemas.google.com/acl/2007'> <category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/acl/2007#accessRule'/> <gAcl:role value='reader'/> <gAcl:scope type='user' value='new_writer@gmail.com'/> </entry>
הסרת הרשאות שיתוף
כדי להסיר את ההרשאות של המשתמש הזה, שולחים בקשה מסוג DELETE
לאותו קישור edit
ששימש לבקשת PUT
:
DELETE /feeds/acl/site/domainName/siteName/user%3Anew_writer%40example.com HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here>
השרת ישיב עם 200 OK
.
נושאים מיוחדים
אחזור מחדש של פיד או רשומה
אם אתם רוצים לאחזר פיד או רשומה שכבר אחזרתם, תוכלו לשפר את היעילות על ידי אמירת הבקשה לשרת לשלוח את הרשימה או הרשומה רק אם הם השתנו מאז הפעם האחרונה שאחזרתם אותם.
כדי לבצע אחזור מותנה כזה, שולחים בקשת HTTP GET
שכוללת כותרת HTTP If-None-Match
. בכותרת, מציינים את ערכי ה-ETag של הרשימה או הרשומה, שאותם ניתן למצוא
במאפיין <feed>
של הרכיב <entry>
או במאפיין gd:etag
של הרכיב.
דוגמה לשימוש בפיד האתר:
GET /feeds/site/domainName/myOtherTestSite/ GData-Version: 1.4 If-None-Match: W/"Ck8GQXk7fil7ImA9WxNSFk0."
כשהשרת מקבל את הבקשה, הוא בודק אם לפריט שביקשתם יש אותו ETag של ה-ETag שציינתם. אם תהיה התאמה בין תגי ה-ETag, המשמעות היא שהפריט לא השתנה והשרת יחזיר את קוד הסטטוס Not Modified
HTTP 304 או את קוד הסטטוס 412 Precodition Failed
HTTP. שני קודי הסטטוס האלה מציינים שהפריט שכבר אחזרתם עדכני.
אם תג ה-ETag לא תואם, המשמעות היא שהפריט השתנה מאז הפעם האחרונה שביקשת אותו, והשרת מחזיר את הפריט.
מידע נוסף על ETags זמין במדריך Google Data APIs.
עיבוד באצווה
בקשות באצווה מאפשרות ללקוח לבצע מספר פעולות בבקשה אחת, במקום לשלוח כל פעולה בנפרד.
השרת יבצע כמה שיותר מהשינויים המבוקשים ויחזיר את נתוני הסטטוס שבעזרתם תוכלו להעריך את ההצלחה או הכישלון של כל פעולה. פרטים נוספים על עיבוד באצווה ב-Google Data API זמינים במאמר עיבוד באצווה באמצעות Google Data APIs.
לכל פעולה בפיד באצווה יש רכיב <id>, מלבד פעולות הוספה.
הרכיב הזה זהה לכתובת ה-URL של הבקשה שבה אתם משתמשים בדרך כלל כשאתם מעדכנים, מוחקים או שולחים שאילתה לגבי פיד התוכן.
לדוגמה, אם אתם מעדכנים עריכה, מגדירים את <id> לקישור edit
של הרשומה הרלוונטית.
הוא משמש לזיהוי רשומת היעד. לרשאות חדשות אין רכיבי <id> כי הן עדיין לא נוצרו. במקום זאת, אפשר להגדיר ערך מחרוזת ב-<batch:id>, שיוחזר בתגובה מהשרת וישמש לחיפוש הרשומה המתאימה.
כדי לשלוח בקשה באצווה, צריך ליצור פיד ברצף ולשלוח POST
HTTP לקישור לאצוות של הפיד:
<link rel="http://schemas.google.com/g/2005#batch" type="application/atom+xml" href="https://sites.google.com/feeds/content/site/siteName/batch"/>
הדוגמה הבאה מראה איך להריץ שאילתה, להוסיף, לעדכן ולמחוק רשומה של דף אינטרנט:
POST /feeds/content/site/siteName/batch HTTP/1.1 Host: sites.google.com Accept: */* If-Match: * GData-Version: 1.4 Authorization: <your authorization header here> <feed xmlns="http://www.w3.org/2005/Atom" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gd="http://schemas.google.com/g/2005" xmlns:batch='http://schemas.google.com/gdata/batch'> <entry> <id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID1</id> <batch:operation type="query"/> </entry> <entry> <batch:id>1</batch:id> <batch:operation type='insert'/> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#webpage" label="webpage"/> <title>New Webpage1</title> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">HTML body goes here</div> </content> </entry> <entry gd:etag=""YDgpeyI.""> <id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID2</id> <batch:operation type='update'/> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#webpage" label="webpage"/> <title>Updated Title for Webpage2</title> ... <batch:operaation type="update"/> </entry> <entry gd:etag=""YassseyI.""> <id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID3</id> <batch:operation type='delete'/> </entry> </feed>
הפיד המוחזר מכיל רשומת תוצאה אחת לכל פעולה:
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/"
xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006"
xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch"
xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0">
<id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID1</id>
<updated>2009-11-10T22:44:08.369Z</updated>
<title>Batch Feed</title>
<entry gd:etag=""YDgpsdfeyI."">
<id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID1</id>
<published>2009-08-31T04:42:45.251Z</published>
<updated>2009-10-25T22:46:13.729Z</updated>
<app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-25T22:46:13.671Z</app:edited>
<category scheme="http://schemas.google.com/g/2005#kind"
term="http://schemas.google.com/sites/2008#webpage" label="webpage"/>
<title>Page Title</title>
...
<batch:status code="200" reason="Success"/>
<batch:operation type="query"/>
</entry>
<entry gd:etag=""YDsseyI."">
<id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID4</id>
<published>2009-11-10T22:44:08.531Z</published>
<updated>2009-11-10T22:44:08.560Z</updated>
<app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-10T22:44:08.531Z</app:edited>
<category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#webpage" label="webpage"/>
<title>New Webpage1</title>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox">
<tbody>
<tr>
<td class="sites-layout-tile sites-tile-name-content-1">
<div>HTML body goes here</div>
</td>
</tr>
</tbody>
</table>
</div>
</content>
...
<batch:id>1</batch:id>
<batch:status code="201" reason="Created"/>
<batch:operation type="insert"/>
</entry>
<entry gd:etag=""YDkpeyI."">
<id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID2</id>
<updated>2009-11-10T22:44:09.296Z</updated>
<title>Updated Title for Webpage2</title>
...
<sites:pageName>updated-title-for-webpage2</sites:pageName>
<sites:revision>5</sites:revision>
<batch:status code="200" reason="Success"/>
<batch:operation type="update"/>
</entry>
<entry>
<id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID3</id>
<title>Deleted</title>
<content>Deleted</content>
<batch:status code="200" reason="Success"/>
<batch:operation type="delete"/>
</entry>
</feed>