تسمح واجهة برمجة التطبيقات لمواقع Google الكلاسيكية لتطبيقاتك بالوصول إلى المحتوى ونشره وتعديله ضمن موقع مصمم في مواقع Google. بالإضافة إلى ذلك، يمكن لتطبيقك طلب قائمة بالأنشطة الحديثة واسترجاع سجلّ النُسخ السابقة وتحميل أو تنزيل المرفقات والملفات.
الجمهور
يفترض هذا المستند أنك تفهم الأفكار العامة وراء بروتوكول Google Data APIs.
هذا المستند مخصص للمبرمجين الذين يريدون كتابة تطبيقات العميل التي يمكنها التفاعل مع مواقع Google. ويوفر سلسلة من الأمثلة على تفاعلات واجهة برمجة التطبيقات للبيانات الأساسية باستخدام تنسيق XML/HTTP الخام، مع تفسيرات. بعد قراءة هذا المستند، يمكنك معرفة المزيد حول التفاعل مع واجهة برمجة التطبيقات باستخدام مكتبات العملاء من خلال قراءة أمثلة خاصة بكل لغة وموجودة في الأدلة الأخرى في شريط التنقل بالجانب الأيسر.
كمرجع للمواد المضمّنة في هذا الدليل، راجع الدليل المرجعي.
تفويض الطلبات
عندما يطلب التطبيق بيانات مستخدمين غير متاحة للجميع، يجب أن يتضمّن رمزًا مميّزًا للمصادقة. ويساعد الرمز المميز محرك البحث Google في التعرّف على تطبيقك.
نبذة عن بروتوكولات التفويض
يجب أن يستخدم تطبيقك OAuth 2.0 للسماح بالطلبات. ولا يُسمح باستخدام أي بروتوكولات أخرى للموافقة على الطلبات. إذا كان تطبيقك يستخدم ميزة تسجيل الدخول باستخدام حساب Google، ستتم معالجة بعض جوانب عملية الموافقة على الطلبات نيابةً عنك.
الموافقة على الطلبات باستخدام OAuth 2.0
يجب أن يوافق مستخدم مصادَق عليه على كلّ الطلبات المُرسلة إلى Google Sites Data API للحصول على بيانات غير علنية.
تختلف تفاصيل عملية الموافقة على الطلبات لبروتوكول OAuth 2.0 نوعًا ما حسب نوع التطبيق الذي تكتبه. وتسري العملية العامة التالية على كل أنواع التطبيقات:
- عند إنشاء التطبيق، يجب تسجيله باستخدام وحدة التحكم في واجهة Google API. ويوفر محرك البحث Google المعلومات التي ستحتاجها في ما بعد، مثل معرّف العميل وسر العميل.
- تفعيل واجهة برمجة التطبيقات لبيانات مواقع Google في وحدة التحكم في واجهة Google API. (يمكنك تخطّي هذه الخطوة إذا كانت واجهة برمجة التطبيقات غير مدرَجة في وحدة التحكم في واجهة Google API.)
- إذا احتاج التطبيق الدخول إلى بيانات المستخدِم، يطلب التطبيق من Google نطاقًا معينًا للدخول.
- يعرض Google شاشة الموافقة للمستخدم، ويطلب منه السماح لتطبيقك بطلب بعض بياناته.
- عند موافقة المستخدِم، يمنح Google تطبيقك رمز دخول قصير الأجل.
- يطلب تطبيقك بيانات المستخدِم، من خلال إرفاق رمز الدخول بالطلب.
- يعرض Google البيانات المطلوبة بعد تحققه من صلاحية طلبك والرمز المميز.
تستلزم بعض التدفقات إجراء خطوات إضافية، مثل استخدام رموز مميزة للتحديث للحصول على رموز دخول جديدة. لمزيد من المعلومات التفصيلية حول العمليات المتعلقة بمختلف أنواع التطبيقات، راجِع مستندات بروتوكول OAuth 2.0 في Google.
في ما يلي معلومات عن نطاق OAuth 2.0 في واجهة برمجة التطبيقات لبيانات "مواقع Google":
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 التي يملكها المستخدم أو لديه أذونات بالعرض لها وتعديل عنوان موقع حالي بالنسبة إلى نطاقات 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.
يمكن إدارة المواقع الإلكترونية الجديدة من خلال إنشاء POST
HTTP لخلاصة الموقع الإلكتروني، على سبيل المثال:
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 جديد يحتوي على "القائمة" المظهر ضمن نطاق 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.
يمكن إنشاء نسخة طبق الأصل من موقع إلكتروني حالي بالطريقة نفسها التي يتم بها إنشاء نسخة طبق الأصل من موقع إنشاء موقع إلكتروني جديد. ومع ذلك، في إدخال Atom لطلب POST
،
تضمين <link>
مع rel='source'
تشير إلى خلاصة الموقع الإلكتروني المطلوب نسخها. أي موقع يحتوي على
تم نسخه على هذا الرابط. في ما يلي مثال على إنشاء نسخة طبق الأصل من موقع إلكتروني:
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.
- يمكنك نسخ موقع إلكتروني من نطاق آخر في انتظار إدراجك كمالك على الموقع الإلكتروني المصدر.
تعديل البيانات الوصفية لموقع إلكتروني
لتعديل عنوان موقع إلكتروني أو ملخّصه، أرسِل PUT
HTTP إلى رابط 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>
يضيف هذا المثال فئتين: "موقع الفريق" و"القسم القانوني"
تعيينات عناوين الويب
تمكّن عمليات ربط عناوين الويب مستخدمي "مواقع Google" من ربط نطاقاتهم الخاصة بأحد "مواقع Google". على سبيل المثال: 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 ). |
للعثور على رابط المراجعات لصفحة/تعليق/مرفق/listitem معين، عليك أولاً استرداد الإدخال من
خلاصة المحتوى باستخدام 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
<link rel="next" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/?start-index=2"/>
للحصول على شرح للعناصر الشائعة في Atom، يُرجى الاطّلاع على مرجع بروتوكول Google Data Protocol.
في ما يلي توضيح للعناصر التي لها قيمة معيّنة في واجهة برمجة تطبيقات "مواقع Google" الكلاسيكية. وستحتوي بعض الإدخالات من النوع على خصائص إضافية (غير مدرجة أدناه)، بينما
ولن يفعله الآخرون. على سبيل المثال، قد يحتوي إدخال listitem
على عناصر <gs:field>
، بينما لا يحتوي الإدخال webpage
على ذلك.
العنصر | الوصف |
---|---|
<content ...> | النص الداخلي هو نص HTML الأساسي للصفحة. في بعض الإدخالات (مثل المرفقات)، سيحتوي هذا العنصر على السمة src التي تشير إلى الملف. |
<link rel="alternate" ...> | رابط إلى الصفحة أو العنصر في "مواقع Google" |
<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. وتلك المتعلقة بواجهة برمجة تطبيقات "مواقع Google" الكلاسيكية. للحصول على معلومات أكثر تفصيلاً وعلى قائمة كاملة بالمعلَمات المتوافقة، يمكنك الاطّلاع على الدليل المرجعي
استرداد أنواع إدخالات معيّنة
لاسترجاع نوع معيّن من الإدخالات، استخدِم المَعلمة 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
إنشاء المحتوى
يمكن إنشاء محتوى جديد (صفحات الويب وصفحات القوائم وصفحات خزانات الملفات وصفحات الإعلانات وما إلى ذلك) عن طريق إرسال HTTP POST
.
إلى خلاصة المحتوى:
https://sites.google.com/feeds/content/domainName/siteName
للحصول على قائمة بأنواع الإدخالات المتوافقة، يمكنك مراجعة المَعلمة kind
في الدليل المرجعي.
إنشاء عناصر / صفحات جديدة
يؤدي هذا المثال إلى إنشاء علامة webpage
جديدة ضمن المستوى الأعلى للموقع الإلكتروني، وتتضمّن بعض رموز XHTML للنص الأساسي في الصفحة.
وتعيين عنوان العنوان على "عنوان صفحة ويب جديدة":
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
جديدة بعنوان صفحة "تخزين الملفات"، ولكن يتم إنشاء الصفحة.
ضمن عنوان 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>
، يجب ألا يكون فارغًا في حال عدم توفّر 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، تسمح لك واجهة برمجة التطبيقات بتحميل المرفقات في صفحات خزانة الملفات والصفحات الأصلية.
لتحميل مرفق إلى أحد الوالدَين، أرسِل طلب 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
، يجب تضمين فئة باستخدام "العبارة". الذي تم تعيينه على اسم المجلد:
<category scheme="http://schemas.google.com/sites/2008#folder" term="FolderName">
مرفقات الويب
مرفقات الويب هي أنواع خاصة من المرفقات. وهي في الأساس روابط إلى ملفات أخرى على الويب التي يمكنك إضافتها إلى قوائم خزانة الملفات. تتشابه هذه الميزة مع ميزة "إضافة ملف باستخدام عنوان URL". طريقة التحميل في واجهة مستخدم "مواقع Google".
ملاحظة: لا يمكن إنشاء مرفقات الويب إلا ضمن خزانة ملفات. ولا يمكن تحميلها إلى أنواع أخرى من الصفحات.
ينشئ هذا المثال webattachment
ضمن خزانة الملفات المُشار إليها باستخدام رقم التعريف FILECABINET_ENTRY_ID
.
تم ضبط عنوانه ووصفه (الاختياري) على "GoogleLogo". و"ألوان جميلة"، على التوالي.
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".
تعديل المحتوى
يمكن تعديل البيانات الوصفية (العنوان واسم الصفحة وما إلى ذلك) ومحتوى الصفحة لأي صفحة من خلال طلب 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 API
تعديل البيانات الوصفية أو محتوى HTML الخاص بعنصر
لتعديل البيانات الوصفية لأحد الإدخالات أو محتوى HTML، أرسِل PUT
HTTP إلى رابط edit
الخاص بالإدخال.
في ما يلي مثال على تعديل إدخال listpage
(يمثّله رقم التعريف ENTRY_ID
) من خلال إجراء التغييرات التالية:
- تم تعديل العنوان إلى "المحتوى المحدَّث"
- محتوى HTML المعدَّل
- تم تعديل عنوان العمود الأول من القائمة إلى "المالك"
- يعدِّل العنصر
<sites:pageName>
مسار عنوان URL للصفحة.
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"، عليك أولاً استرداد الإدخال، ثم إرسال 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>
وإذا تم حذف الإدخال بنجاح، يستجيب الخادم باستخدام 200 OK
HTTP.
إذا كنت تريد التأكد من عدم حذف إدخال غيره عميل آخر منذ استرداده، فقم بتضمين
عنوان HTTP If-Match
الذي يحتوي على قيمة ETag للإدخال الأصلي يمكنك تحديد قيمة ETag للإدخال الأصلي من خلال
فحص السمة gd:etag
للعنصر <entry>
.
إذا كنت تريد حذف الإدخال بغض النظر عما إذا كان شخص آخر قد حدّثه بعد استرداده، فاستخدم
If-Match: *
ولا تتضمّن العلامة ETag. (في هذه الحالة، لا تحتاج إلى استرداد الإدخال قبل حذفه.)
لمزيد من المعلومات عن علامات ETags، اطلع على الدليل المرجعي لواجهات Google Data APIs.
تنزيل المرفقات
بعد أن يكون لديك إدخال مرفق، يمكنك تنزيل الملف من خلال إرسال HTTP GET
تمت مصادقته إلى الإدخال
رابط src <content>
. مثال على رابط محتوى ملف PDF:
<content type="application/pdf" src="http://502377765-a-google-com-s-sites.googlegroups.com/feeds/media/content/domainName/siteName/678942036"/>
موجز ACL
نظرة عامة على أذونات المشاركة (ACLs)
يمثل كل إدخال لقائمة التحكم بالوصول في خلاصة قائمة التحكم بالوصول دور وصول لكيان معين، إما مستخدم أو مجموعة من المستخدمين أو نطاق أو خيار الوصول التلقائي (وهو موقع إلكتروني متاح للجميع). سيتم عرض الإدخالات للكيانات التي لديها إذن وصول صريح فقط، وسيتم عرض إدخال واحد. لكل عنوان بريد إلكتروني في قسم "الأشخاص الذين لديهم الإذن بالوصول" في شاشة المشاركة في واجهة مستخدم "مواقع Google". وبالتالي، لن يتم عرض مشرفي النطاق، على الرغم من أنّها تملك إمكانية الوصول الضمني إلى أحد المواقع الإلكترونية.
الأدوار
يمثل عنصر الدور مستوى الوصول الذي يمكن أن يتمتع به الكيان. هناك أربع قيم محتملة للعنصر gAcl:role
:
- reader — عارض (أي حق الوصول للقراءة فقط)
- author: متعاون (يعادل إذن الوصول للقراءة/الكتابة).
- owner: يكون عادةً مشرف الموقع الإلكتروني (يعادل إذن الوصول للقراءة/الكتابة).
المستويات
يمثل عنصر النطاق الكيان الذي لديه مستوى الوصول هذا. هناك خمسة أنواع محتملة من العنصر gAcl:scope
:
- user — قيمة عنوان بريد إلكتروني، مثل "user@gmail.com".
- group — عنوان بريد إلكتروني لمجموعة Google، مثل "group@domain.com".
- النطاق — اسم نطاق في G Suite، مثل "domain.com".
- submit — مستخدم تمت دعوته إلى الموقع، ولكن لم تتم إضافته بعد إلى قائمة التحكم بالوصول (ACL) للموقع. (غير متاح إذا تم تحديد gdata 1.3 أو أقل.)
- default: ليس هناك سوى نطاق واحد محتمل من النوع "تلقائي"، والذي لا يحتوي على قيمة
(مثل
<gAcl:scope type="default">
). يتحكم هذا النطاق المحدد في الوصول الذي يتمتع به أي مستخدم بشكل افتراضي على موقع إلكتروني متاح للجميع.
ملاحظة: لا يمكن أن تحتوي النطاقات على القيمة gAcl:role
.
الضبط على "المالك" الوصول إليها، لا يمكن أن يكونوا سوى القراء أو الكتّاب.
لمحة عن "الدعوة" النطاق.
تعرض واجهة برمجة التطبيقات نطاق الدعوة عند إضافة مستخدم واحد أو أكثر إلى ACL الذين ليس لديهم حساب Google من قبل. تعرض واجهة برمجة التطبيقات عنوان 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، ستعرض واجهة برمجة التطبيقات عنوان 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) دعوة نطاقات.
تعديل أذونات المشاركة
لتعديل إدخال في قائمة التحكم بالوصول، عدِّل الإدخال حسب الضرورة، وأرسِل طلب HTTP PUT
إلى
رابط edit
للإدخال، وهو ببساطة
عنصر <link>
، الذي يكون الرمز 'rel' على "تحرير". بالنسبة إلى المثال السابق، هذا الرابط هو:
<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>
أو السمة gd:etag
للعنصر <entry>
.
مثال على استخدام خلاصة الموقع الإلكتروني:
GET /feeds/site/domainName/myOtherTestSite/ GData-Version: 1.4 If-None-Match: W/"Ck8GQXk7fil7ImA9WxNSFk0."
عندما يتلقى الخادم هذا الطلب، يتحقق لمعرفة ما إذا كان العنصر الذي طلبته يحتوي على علامة ETag نفسها كما في
علامة ETag التي حددتها. إذا تطابقت علامات ETag، فهذا يعني أن العنصر لم يتغير، ويعرض الخادم إما
رمز حالة HTTP 304 Not Modified
أو رمز حالة HTTP 412 Precodition Failed
. كلاهما
تشير رموز الحالة إلى أن العنصر الذي تم استرداده بالفعل مُحدَّث.
إذا لم تتطابق علامات ETag، فهذا يعني أنه تم تعديل العنصر منذ آخر مرة طلبته فيها، ويعيد الخادم العنصر.
لمزيد من المعلومات عن علامات ETags، اطلع على الدليل المرجعي لواجهات Google Data APIs.
معالجة الدفعات
تتيح الطلبات المجمّعة لعميلك إمكانية تنفيذ عمليات متعددة في طلب واحد، بدلاً من إرسال كل عملية على حدة.
سيُجري الخادم أكبر قدر ممكن من التغييرات المطلوبة ويعرض معلومات الحالة التي يمكنك استخدامها تقييم نجاح أو فشل كل عملية. لمزيد من التفاصيل حول المعالجة المجمّعة في Google Data API، راجِع المعالجة المجمّعة باستخدام واجهات برمجة التطبيقات للبيانات من Google.
تتضمن كل عملية في الخلاصة المجمّعة عنصر <id>، باستثناء عمليات الإدراج.
هذا العنصر هو نفسه عنوان URL للطلب الذي تستخدمه عادةً عند تعديل خلاصة المحتوى أو حذفها أو إرسال طلبات بحث عنها.
على سبيل المثال، إذا كنت تعدّل تعديلاً، اضبط السمة <id> على الرابط edit
للإدخال المعنيّ.
ويتم استخدامه لتحديد الإدخال المستهدف. لا تحتوي الإدخالات الجديدة على عناصر <id> لأنها
لم يتم إنشاؤها بعد. ويمكنك بدلاً من ذلك تحديد قيمة سلسلة في <batch:id>، والتي سيتم
التي تم إرجاعها في استجابة الخادم وتستخدم للبحث عن الإدخال المقابل.
لإنشاء طلب مُجمَّع، أنشِئ خلاصة مجمّعة وأرسِل رمز HTTP POST
إلى الرابط المجمّع للخلاصة:
<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>