تتيح واجهة برمجة التطبيقات الكلاسيكية لمواقع Google لتطبيقاتك الوصول إلى المحتوى ونشره وتعديله ضمن موقع Google. بالإضافة إلى ذلك، يمكن لتطبيقك طلب قائمة بالأنشطة الحديثة وجلب سجلّ المراجعات وتحميل/تنزيل المرفقات والملفات.
الجمهور
يفترض هذا المستند أنّك تفهم الأفكار العامة وراء بروتوكول Google Data APIs.
هذا المستند مخصّص للمبرمجين الذين يريدون كتابة تطبيقات عملاء يمكنها التفاعل مع "مواقع Google". ويوفّر سلسلة من الأمثلة على تفاعلات Data APIs الأساسية باستخدام XML/HTTP الأوّلي، مع شرح. بعد قراءة هذا المستند، يمكنك معرفة المزيد عن التفاعل مع واجهة برمجة التطبيقات باستخدام مكتبات العملاء من خلال قراءة الأمثلة الخاصة باللغة الموجودة في الأدلة الأخرى في شريط التنقل على الجانب الأيمن.
للحصول على مرجع للمواد الواردة في هذا الدليل، يُرجى الاطّلاع على الدليل المرجعي.
تفويض الطلبات
عندما يطلب تطبيقك بيانات مستخدم غير علنية، يجب أن يتضمّن الطلب رمز تفويض مميزًا. ويساعد الرمز المميز محرك بحث Google في التعرّف على تطبيقك.
نبذة عن بروتوكولات التفويض
يجب أن يستخدم تطبيقك OAuth 2.0 للسماح بالطلبات. ولا يُسمح باستخدام أي بروتوكولات أخرى للموافقة على الطلبات. إذا كان تطبيقك يستخدم ميزة تسجيل الدخول باستخدام حساب Google، ستتم معالجة بعض جوانب عملية الموافقة على الطلبات نيابةً عنك.
الموافقة على الطلبات باستخدام OAuth 2.0
يجب أن يوافق مستخدم مصادَق عليه على الطلبات الموجّهة إلى Google Sites Data API للحصول على بيانات المستخدمين غير العلنية.
تختلف تفاصيل عملية الموافقة على الطلبات لبروتوكول OAuth 2.0 نوعًا ما حسب نوع التطبيق الذي تكتبه. وتسري العملية العامة التالية على كل أنواع التطبيقات:
- عند إنشاء التطبيق، يجب تسجيله باستخدام وحدة التحكم في واجهة Google API. ويوفر محرك بحث Google المعلومات التي ستحتاجها في ما بعد، مثل معرّف العميل وسر العميل.
- يجب تفعيل Google Sites Data API في وحدة التحكم في واجهة Google API. (يمكنك تخطّي هذه الخطوة إذا كانت واجهة برمجة التطبيقات غير مدرَجة في وحدة تحكم Google 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 التي يملكها المستخدم أو لديه أذونات عرض لها، وكذلك تعديل عنوان موقع إلكتروني حالي. بالنسبة إلى نطاقات 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" باستخدام المظهر "slate" ضمن نطاق 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".
- يمكنك نسخ موقع إلكتروني من نطاق آخر، في حال كنت مدرجًا كمالك على الموقع الإلكتروني المصدر.
تعديل البيانات الوصفية لموقع إلكتروني
لتعديل عنوان موقع إلكتروني أو ملخّصه، أرسِل طلب 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>
يضيف هذا المثال فئتين: "موقع الفريق" و "القسم القانوني"
عمليات تعيين عناوين الويب
تتيح عمليات تعيين عناوين الويب لمستخدمي "مواقع 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>
ستظهر عمليات الربط الحالية على شكل links مع 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 الصحيح وأن يشير إلى الرمز المميّز الذي تم الحصول عليه
في تفويض الطلبات.
خلاصة المراجعات
لجلب سجلّ النُسخ السابقة لأي إدخال محتوى، أرسِل طلب GET عبر HTTP إلى رابط نسخة الإدخال:
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 الصحيح وأن يشير إلى الرمز المميّز الذي تم الحصول عليه
في طلبات التفويض.
خلاصة المحتوى
جارٍ استرداد المحتوى
تعرض خلاصة المحتوى المحتوى الحالي في "مواقع Google". أرسِل طلب 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.
في ما يلي العناصر التي تحمل معنى محدّدًا في Sites API للإصدار الكلاسيكي من "مواقع 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 وتلك الخاصة بواجهة Sites API الكلاسيكية. لمزيد من المعلومات التفصيلية وقائمة كاملة بالمعلَمات المتوافقة، يُرجى الاطّلاع على الدليل المرجعي.
استرداد أنواع إدخالات معيّنة
لجلب نوع معيّن فقط من الإدخالات، استخدِم المَعلمة kind. يعرض هذا المثال إدخالات webpage فقط:
GET /feeds/content/domainName/siteName?kind=webpage
لعرض أكثر من نوع إدخال واحد، افصل بين كل kind بفاصلة "،". يعرض هذا المثال إدخالات filecabinet وlistpage:
GET /feeds/content/domainName/siteName?kind=filecabinet,listpage
بدلاً من ذلك، يمكنك استخدام التنسيق العادي لطلب بحث بيانات المستخدم على Google /-/category بدلاً من المَعلمة 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 متوفّرة. Normalization is to trim + collapse whitespace to '-' and remove chars not matchinga-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، يجب تضمين فئة مع ضبط سمة "term" على اسم المجلد:
<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.
تعديل المحتوى
يمكن تعديل البيانات الوصفية (العنوان وpageName وما إلى ذلك) ومحتوى أي صفحة من خلال طلب PUT واحد إلى الرابط edit.
يجب أن يحتوي نص الطلب على إدخال Atom يصف الصفحة المعدَّلة. والاستثناء من هذه القاعدة هو إدخال المرفق، حيث لا يمكن استخدام الإدخال إلا لتعديل البيانات الوصفية للمرفق.
لتغيير محتوى الملف المرفق، ما عليك سوى تضمين البيانات الأولية كنص لطلب PUT إلى رابط edit-media المرفق. يمكنك أيضًا تعديل كل من البيانات الوصفية ومحتوى الملف المرفق في آنٍ واحد باستخدام طلب MIME متعدد الأجزاء.
للتأكيد على أنّ التعديل لا يستبدل تغييرات عميل آخر، يجب تضمين قيمة ETag للإدخال الأصلي. ويمكنك إجراء ذلك من خلال تقديم قيمة ETag في عنوان HTTP If-Match أو من خلال تضمين سمة gd:etag للإدخال الأصلي في الإدخال المعدَّل. لتحديد قيمة ETag للإدخال الأصلي، افحص السمة gd:etag للعنصر <entry>.
بالنسبة إلى إدخالات الوسائط، قد يتوفّر ETag للوسائط في السمة gd:etag للرابط edit-media.
إذا أردت تعديل الإدخال بغض النظر عمّا إذا كان مستخدم آخر قد عدّله منذ استرداده، استخدِم If-Match: * ولا تُدرِج علامة ETag. لمزيد من المعلومات حول علامات ETags، يُرجى الاطّلاع على
دليل 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="Description"/> <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>
إذا تم حذف الإدخال بنجاح، يستجيب الخادم برمز HTTP 200 OK.
إذا أردت التأكّد من عدم حذف إدخال تم تغييره من قِبل عميل آخر منذ استرداده، يمكنك تضمين عنوان HTTP If-Match يحتوي على قيمة ETag للإدخال الأصلي. يمكنك تحديد قيمة ETag للإدخال الأصلي من خلال
فحص السمة gd:etag للعنصر <entry>.
إذا أردت حذف الإدخال بغض النظر عمّا إذا كان شخص آخر قد عدّله منذ استرداده، استخدِم If-Match: * ولا تُدرِج علامة ETag. (في هذه الحالة، لست بحاجة إلى استرداد الإدخال قبل حذفه).
لمزيد من المعلومات حول علامات ETag، يُرجى الاطّلاع على دليل 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
نظرة عامة على أذونات المشاركة (قوائم التحكّم بالوصول)
يمثّل كل إدخال في قائمة التحكّم بالوصول (ACL) في خلاصة قائمة التحكّم بالوصول دور وصول لكيان معيّن، إما مستخدم أو مجموعة من المستخدمين أو نطاق أو الوصول التلقائي (وهو موقع إلكتروني متاح للجميع). لن تظهر الإدخالات إلا للكيانات التي لديها إذن وصول صريح، وسيظهر إدخال واحد لكل عنوان بريد إلكتروني في لوحة "المستخدمون الذين لديهم إذن الوصول" في شاشة المشاركة في واجهة مستخدم "مواقع Google". وبالتالي، لن يتم عرض مشرفي النطاق، على الرغم من أنّ لديهم إذن وصول ضمني إلى الموقع الإلكتروني.
الأدوار
يمثّل عنصر الدور مستوى الوصول الذي يمكن أن تحصل عليه جهة معيّنة. هناك أربع قيم محتمَلة للعنصر gAcl:role:
- قارئ: مُشاهد (يعادل الإذن بالقراءة فقط)
- كاتب: متعاون (يعادل الإذن بالقراءة والتعديل)
- owner: عادةً ما يكون مشرف الموقع الإلكتروني (يعادل الإذن بالقراءة والتعديل).
المستويات
يمثّل عنصر النطاق الكيان الذي لديه مستوى الوصول هذا. هناك خمسة أنواع محتملة للعنصر gAcl:scope:
- user: قيمة عنوان بريد إلكتروني، مثل "user@gmail.com".
- group: عنوان البريد الإلكتروني لمجموعة Google، مثل "group@domain.com".
- domain: اسم نطاق G Suite، مثل "domain.com".
- invite: مستخدم تمت دعوته إلى الموقع الإلكتروني، ولكن لم تتم إضافته بعد إلى قائمة التحكّم بالوصول (ACL) للموقع الإلكتروني. (غير متاح في حال تحديد gdata 1.3 أو إصدار أقدم)
- default: لا يتوفّر سوى نطاق واحد محتمل من النوع "default"، وليس له قيمة (مثل
<gAcl:scope type="default">). يتحكّم هذا النطاق تحديدًا في إمكانية وصول أي مستخدم تلقائيًا إلى موقع إلكتروني متاح للجميع.
ملاحظة: لا يمكن أن يكون للنطاقات قيمة gAcl:role
محدّدة على إذن الوصول "مالك"، بل يمكن أن تكون قارئة أو كاتبة فقط.
لمحة عن نطاق "الدعوة"
تعرض واجهة برمجة التطبيقات نطاق الدعوة عند إضافة مستخدم واحد أو أكثر إلى قائمة التحكّم بالوصول (ACL) ليس لديهم حساب Google. تعرض واجهة برمجة التطبيقات عنوان URL يتضمّن رمزًا مميزًا مضمّنًا يجب تقديمه إلى المستخدمين المدعوين للسماح لهم بقبول الدعوة.
تتيح لك طريقة الدعوة هذه دعوة مستخدمين حساباتهم غير تابعة لـ Google بدون معرفة مسبقة بعنوان البريد الإلكتروني الذي يريدون استخدامه. طالما أنّ المستخدمين ينقرون على عنوان URL للدعوة الذي يتضمّن الرمز المميّز المضمّن، يمكنهم الاشتراك للوصول إلى الخدمة باستخدام أي عنوان بريد إلكتروني يريدونه. بالإضافة إلى ذلك، يمكن لعدة مستخدمين استخدام عنوان URL هذا لقبول الدعوة، لذا يمكن أن يكون ذلك مفيدًا في حال دعوة مستخدم واحد أو مجموعة من المستخدمين.
ملاحظة: لا يتوفّر نطاق "الدعوة" إلا في الإصدار 1.4 من gdata والإصدارات الأحدث. لن ينجح ذلك إذا كنت تحدّد صراحةً الإصدار 1.3 أو إصدارًا أقدم.
جارٍ استرداد خلاصة قائمة التحكّم بالوصول
يمكن استخدام خلاصة قائمة التحكّم بالوصول (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 وخلاصة لإدخالات قائمة التحكّم بالوصول:
<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>
مشاركة موقع إلكتروني
تقبل خلاصة قائمة التحكّم بالوصول طلبات GET وPOST وPUT. لإدراج دور جديد في خلاصة قائمة التحكّم بالوصول، ما عليك سوى إرسال طلب POST إلى خلاصة قائمة التحكّم بالوصول للموقع الإلكتروني.
ملاحظة: قد لا تكون بعض قوائم التحكّم بالوصول (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 للقائمة أو الإدخال، والتي يمكنك العثور عليها في السمة gd:etag للعنصر <feed> أو العنصر <entry>.
مثال على استخدام خلاصة الموقع الإلكتروني:
GET /feeds/site/domainName/myOtherTestSite/ GData-Version: 1.4 If-None-Match: W/"Ck8GQXk7fil7ImA9WxNSFk0."
عندما يتلقّى الخادم هذا الطلب، يتحقّق مما إذا كان العنصر الذي طلبته يحمل علامة ETag نفسها التي حدّدتها. إذا تطابقت علامات ETag، يعني ذلك أنّ العنصر لم يتغيّر، ويعرض الخادم رمز حالة HTTP 304 Not Modified أو رمز حالة HTTP 412 Precodition Failed. يشير كلا رمزَي الحالة إلى أنّ العنصر الذي استرددته محدّث.
إذا لم تتطابق علامات ETags، يعني ذلك أنّه تم تعديل العنصر منذ آخر مرة طلبته فيها، وسيعرض الخادم العنصر.
لمزيد من المعلومات حول علامات ETag، يُرجى الاطّلاع على دليل Google Data APIs المرجعي.
المعالجة على دفعات
تتيح الطلبات المجمّعة لعميلك تنفيذ عمليات متعددة في طلب واحد، بدلاً من إرسال كل عملية على حدة.
سينفّذ الخادم أكبر عدد ممكن من التغييرات المطلوبة ويعرض معلومات الحالة التي يمكنك استخدامها لتقييم نجاح كل عملية أو تعذّرها. لمزيد من التفاصيل حول المعالجة على دفعات في Google Data API، يُرجى الاطّلاع على المعالجة على دفعات باستخدام Google Data API
تحتوي كل عملية في خلاصة مجمّعة على عنصر <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>