تسمح واجهة برمجة التطبيقات الكلاسيكية من "مواقع 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 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.
يمكن توفير المواقع الإلكترونية الجديدة من خلال إنشاء 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
في معرّف الموارد المنتظم لخلاصة الموقع الإلكتروني.
ملاحظة: لتعديل عمليات ربط العناوين، يجب أن تكون مشرفًا للموقع الإلكتروني أو مشرف نطاق في حال كان الموقع الإلكتروني مستضافًا على 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 rel="next" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/?start-index=2"/>
للحصول على شرح للعناصر الشائعة في Atom، يُرجى الاطّلاع على مرجع Google Data Protocol.
في ما يلي وصف للعناصر التي تحمل معنى محدّدًا لواجهة برمجة التطبيقات الكلاسيكية Sites API. سيكون لبعض الإدخالات النوعية خصائص إضافية (غير مدرجة أدناه)، في حين أن البعض الآخر ليس لها خصائص. على سبيل المثال، قد يحتوي إدخال 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
بدلاً من ذلك، يمكنك استخدام التنسيق العادي لطلب بحث /-/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 Sites، تسمح لك واجهة برمجة التطبيقات بتحميل المرفقات إلى صفحات خزانة الملفات والصفحات الرئيسية.
لتحميل مرفق إلى أحد الوالدَين، أرسِل طلب 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".
تعديل المحتوى
يمكن تعديل البيانات الوصفية (العنوان و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 API.
تعديل البيانات الوصفية لعنصر معيّن أو محتوى html
لتعديل البيانات الوصفية لأحد الإدخالات أو محتوى HTML، أرسِل PUT
HTTP إلى رابط edit
الخاص بالإدخال.
في ما يلي مثال على تعديل إدخال listpage
(يمثّله رقم التعريف ENTRY_ID
) من خلال إجراء التغييرات التالية:
- تم تعديل العنوان إلى "محتوى معدَّل".
- محتوى HTML المعدَّل
- تعديل عنوان العمود الأول في القائمة إلى "المالك"
- يتم تعديل مسار عنوان URL للصفحة باستخدام العنصر
<sites:pageName>
.
PUT /feeds/content/domainName/siteName/ENTRY_ID Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> Content-Length: 816 Content-Type: application/atom+xml <entry xmlns="http://www.w3.org/2005/Atom" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/"CEEBRn0ymA9WxJWEUw.""> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#listpage" label="listpage"/> <title>Updated Title</title> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">Updated Content</div> </content> <gs:worksheet name="listpage"/> <gs:header row="1"/> <gs:data startRow="2"> <gs:column index="A" name="Owner"/> <gs:column index="B" name="Decription"/> <gs:column index="C" name="Completed"/> </gs:data> <sites:pageName>newPagePath</sites:pageName> </entry>
ملاحظة: سيحتوي الإدخال (على النحو الذي يعرضه الخادم) على عناصر أكثر من المثال أعلاه.
استبدال محتوى مرفق
في ما يلي مثال على استبدال محتوى مرفق مع رسالة، مع إبقاء بياناته الوصفية بدون تغيير. ولأن الطلب يتضمّن محتوًى جديدًا،
يتم استخدام رابط edit-media
الخاص بإدخال المرفق.
PUT /feeds/media/content/domainName/siteName/ATTACHMENT_ENTRY_ID Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> Content-Length: 70581 Content-Type: application/msword ... doc contents here ...
تعديل البيانات الوصفية للمرفقات وتعديل محتواها
في ما يلي مثال على تعديل كل من البيانات الوصفية للمرفق ومحتواه في الوقت نفسه. سيتم تعديل اسم المرفقات إلى "عنوان جديد" وسيتم استبدال محتواه بمحتوى ملف zip. ولأن الطلب يحتوي على محتوى ملف جديد،
يتم استخدام رابط edit-media
لإدخال المرفق.
يُرجى العِلم أنّ تضمين علامة ETag للبيانات الوصفية يقدّم If-Match
ضمنيًا لمحتوى الوسائط أيضًا، لأنّ أي تعديل على
محتوى الوسائط يؤدي إلى تغيير علامة ETag للبيانات الوصفية.
PUT /feeds/media/content/domainName/siteName/ATTACHMENT_ENTRY_ID Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> Content-Type: multipart/related; boundary="END_OF_PART" --END_OF_PART Content-Type: application/atom+xml <?xml version='1.0' encoding='UTF-8'?> <entry xmlns="http://www.w3.org/2005/Atom" xmlns:gd="http://schemas.google.com/g/2005" gd:etag="BxAaTxRZAyp7ImBq"> <link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/ATTACHMENT_ENTRY_ID"/> <title>New Title</title> </entry> --END_OF_PART Content-Type: application/zip ... zip contents here ... --END_OF_PART
حذف المحتوى
لإزالة عنصر من موقع Google الإلكتروني، عليك أولاً استرداد الإدخال، ثم إرسال DELETE
طلب إلى عنوان URL edit
للإدخال. وهذا هو عنوان URL نفسه المستخدَم عند تعديل البيانات الوصفية للعنصر أو محتوى html.
DELETE /feeds/content/domainName/siteName/ENTRY_ID Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> If-Match: <ETag or * here>
إذا تم حذف الإدخال بنجاح، يستجيب الخادم برمز HTTP 200 OK
.
إذا كنت تريد التأكّد من عدم حذف إدخال غيّره عميل آخر منذ استرجاعه، أدرِج رأس If-Match
HTTP يحتوي على قيمة علامة ETag للإدخال الأصلي. يمكنك تحديد قيمة علامة ETag للعنصر الأصلي من خلال examining the <entry>
element's gd:etag
attribute.
إذا كنت تريد حذف الإدخال بغض النظر عمّا إذا كان شخص آخر قد عدّله منذ استرجاعه، استخدِم
If-Match: *
ولا تُدرِج علامة ETag. (في هذه الحالة، لا تحتاج إلى استرداد الإدخال قبل حذفه.)
لمزيد من المعلومات عن علامات ETags، يُرجى الاطّلاع على الدليل المرجعي لواجهات برمجة تطبيقات Google Data API.
تنزيل المرفقات
بعد الحصول على إدخال مرفق، يمكنك تنزيل الملف من خلال إرسال 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"
- المجموعة: عنوان بريد إلكتروني في "مجموعات Google"، مثل "المجموعة@النطاق.com".
- النطاق: اسم نطاق G Suite، مثل "domain.com".
- دعوة: مستخدم تمت دعوته إلى الموقع الإلكتروني، ولكن لم تتم إضافته بعد إلى قائمة أذونات الوصول إلى الملفات للموقع الإلكتروني. (لا يتوفّر هذا الخيار إذا تم تحديد الإصدار 1.3 من gdata أو إصدار أقل).
- default: هناك نطاق واحد فقط من النوع "default"، وليس له قيمة
(مثل
<gAcl:scope type="default">
). يتحكّم هذا النطاق المحدّد في إذن الوصول الذي يحصل عليه أي مستخدم تلقائيًا على موقع إلكتروني متاح للجميع.
ملاحظة: لا يمكن أن تحتوي النطاقات على قيمة gAcl:role
مُعدّة للوصول بصفتها "مالك"، بل يمكن أن تكون قراء أو كاتبين فقط.
لمحة عن نطاق "الدعوة".
تعرض واجهة برمجة التطبيقات نطاق الدعوة عند إضافة مستخدم واحد أو أكثر إلى قائمة التحكّم في الوصول ليس لديهم حساب على 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) لخلاصة قائمة أذونات الوصول:
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>
مشاركة موقع إلكتروني
تقبل خلاصة 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>
دعوة المستخدمين من خلال نطاق invite
في حال إضافة مستخدمين ليس لديهم حسابات على 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) دعوة نطاقات.
تعديل أذونات المشاركة
لتعديل إدخال ACL، عدِّل الإدخال حسب الضرورة، وأرسِل طلب HTTP PUT
إلى edit
رابط الإدخال، وهو <link>
عنصر تم ضبط سمة "rel" فيه على "edit". في المثال السابق، يكون هذا الرابط:
<link rel='edit' type='application/atom+xml' href='https://sites.google.com/feeds/acl/site/domainName/siteName/user%3Anew_writer%40example.com'/>
يغيّر المقتطف أدناه دور "new_writer@gmail.com
" إلى "قارئ":
PUT /feeds/acl/site/domainName/siteName/user%3Anew_writer%40example.com HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> <entry xmlns="http://www.w3.org/2005/Atom" xmlns:gAcl='http://schemas.google.com/acl/2007'> <category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/acl/2007#accessRule'/> <gAcl:role value='reader'/> <gAcl:scope type='user' value='new_writer@gmail.com'/> </entry>
إزالة أذونات المشاركة
لإزالة أذونات هذا المستخدم، عليك إصدار طلب DELETE
لرابط edit
نفسه الذي تم استخدامه في طلب PUT
:
DELETE /feeds/acl/site/domainName/siteName/user%3Anew_writer%40example.com HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here>
سيستجيب الخادم برسالة 200 OK
.
مواضيع خاصة
استرداد خلاصة أو إدخال مرة أخرى
إذا أردت استرداد خلاصة أو إدخال سبق لك استرجاعه، يمكنك تحسين الكفاءة من خلال توجيه الخادم لإرسال القائمة أو الإدخال فقط إذا تغيّر منذ آخر مرة استردت فيها البيانات.
لإجراء هذا النوع من الاسترجاع المشروط، أرسِل طلب HTTP GET
يتضمّن عنوان HTTP يتضمّن If-None-Match
. في العنوان، حدِّد علامة ETag للقائمة أو الإدخال، والتي يمكنك العثور عليها فيسمة 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
. يشير كلا هذين кодَي الحالة
إلى أنّ العنصر الذي سبق لك استرداده محدّث.
إذا لم تتطابق علامات ETag، يعني ذلك أنّه تم تعديل العنصر منذ آخر مرة طلبته فيها، ويعرض الخادم العنصر.
لمزيد من المعلومات عن علامات ETags، اطلع على الدليل المرجعي لواجهات Google Data APIs.
معالجة الدفعات
تتيح الطلبات المجمّعة لعميلك إمكانية تنفيذ عمليات متعددة في طلب واحد، بدلاً من إرسال كل عملية على حدة.
سيُجري الخادم أكبر عدد ممكن من التغييرات المطلوبة ويعرض معلومات الحالة التي يمكنك استخدامها لتقييم نجاح كل عملية أو تعذّرها. لمزيد من التفاصيل حول المعالجة المجمّعة في Google Data API، راجِع المعالجة المجمّعة باستخدام Google Data APIs.
تحتوي كل عملية في خلاصة دفعية على عنصر <id>، باستثناء عمليات الإدراج.
هذا العنصر هو نفسه عنوان URL للطلب الذي تستخدمه عادةً عند تعديل خلاصة المحتوى أو حذفها أو إرسال طلبات بحث عنها.
على سبيل المثال، إذا كنت تعدّل تعديلًا، اضبط <id> على رابط edit
للإدخال المعنيّ.
ويتم استخدامه لتحديد الإدخال المستهدف. لا تحتوي الإدخالات الجديدة على عناصر <id> لأنّه
لم يتم إنشاؤها بعد. يمكنك بدلاً من ذلك تحديد قيمة سلسلة في <batch:id>، والتي سيتم
إرجاعها في استجابة الخادم واستخدامها للبحث عن الإدخال المقابل.
لتقديم طلب مجمّع، عليك إنشاء خلاصة مجمّعة وإرسال POST
HTTP إلى رابط الحزمة للخلاصة:
<link rel="http://schemas.google.com/g/2005#batch" type="application/atom+xml" href="https://sites.google.com/feeds/content/site/siteName/batch"/>
يوضّح المثال أدناه كيفية طلب إدخال صفحة ويب وإدراجه وتعديله وحذفه:
POST /feeds/content/site/siteName/batch HTTP/1.1 Host: sites.google.com Accept: */* If-Match: * GData-Version: 1.4 Authorization: <your authorization header here> <feed xmlns="http://www.w3.org/2005/Atom" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gd="http://schemas.google.com/g/2005" xmlns:batch='http://schemas.google.com/gdata/batch'> <entry> <id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID1</id> <batch:operation type="query"/> </entry> <entry> <batch:id>1</batch:id> <batch:operation type='insert'/> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#webpage" label="webpage"/> <title>New Webpage1</title> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">HTML body goes here</div> </content> </entry> <entry gd:etag=""YDgpeyI.""> <id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID2</id> <batch:operation type='update'/> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#webpage" label="webpage"/> <title>Updated Title for Webpage2</title> ... <batch:operaation type="update"/> </entry> <entry gd:etag=""YassseyI.""> <id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID3</id> <batch:operation type='delete'/> </entry> </feed>
ستحتوي الخلاصة المعروضة على إدخال نتيجة واحد لكل عملية:
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/"
xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006"
xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch"
xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0">
<id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID1</id>
<updated>2009-11-10T22:44:08.369Z</updated>
<title>Batch Feed</title>
<entry gd:etag=""YDgpsdfeyI."">
<id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID1</id>
<published>2009-08-31T04:42:45.251Z</published>
<updated>2009-10-25T22:46:13.729Z</updated>
<app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-25T22:46:13.671Z</app:edited>
<category scheme="http://schemas.google.com/g/2005#kind"
term="http://schemas.google.com/sites/2008#webpage" label="webpage"/>
<title>Page Title</title>
...
<batch:status code="200" reason="Success"/>
<batch:operation type="query"/>
</entry>
<entry gd:etag=""YDsseyI."">
<id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID4</id>
<published>2009-11-10T22:44:08.531Z</published>
<updated>2009-11-10T22:44:08.560Z</updated>
<app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-10T22:44:08.531Z</app:edited>
<category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#webpage" label="webpage"/>
<title>New Webpage1</title>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox">
<tbody>
<tr>
<td class="sites-layout-tile sites-tile-name-content-1">
<div>HTML body goes here</div>
</td>
</tr>
</tbody>
</table>
</div>
</content>
...
<batch:id>1</batch:id>
<batch:status code="201" reason="Created"/>
<batch:operation type="insert"/>
</entry>
<entry gd:etag=""YDkpeyI."">
<id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID2</id>
<updated>2009-11-10T22:44:09.296Z</updated>
<title>Updated Title for Webpage2</title>
...
<sites:pageName>updated-title-for-webpage2</sites:pageName>
<sites:revision>5</sites:revision>
<batch:status code="200" reason="Success"/>
<batch:operation type="update"/>
</entry>
<entry>
<id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID3</id>
<title>Deleted</title>
<content>Deleted</content>
<batch:status code="200" reason="Success"/>
<batch:operation type="delete"/>
</entry>
</feed>