API کلاسیک Google Sites به برنامههای کاربردی شما اجازه میدهد به محتوای یک سایت Google دسترسی داشته باشند، منتشر کنند و آن را تغییر دهند. علاوه بر این، برنامه شما میتواند فهرستی از فعالیتهای اخیر، واکشی تاریخچه تجدیدنظر، و آپلود/دانلود پیوستها و فایلها را درخواست کند.
مخاطب
این سند فرض میکند که شما ایدههای کلی پشت پروتکل Google Data APIs را درک میکنید.
این سند برای برنامه نویسانی در نظر گرفته شده است که می خواهند برنامه های مشتری بنویسند که می توانند با Google Sites تعامل داشته باشند. مجموعهای از نمونههایی از تعاملات API دادههای پایه با استفاده از XML/HTTP خام، همراه با توضیحات ارائه میکند. پس از خواندن این سند، میتوانید با خواندن نمونههای زبان خاص موجود در سایر راهنماها در نوار ناوبری سمت چپ، درباره تعامل با API با استفاده از کتابخانههای سرویس گیرنده ما اطلاعات بیشتری کسب کنید.
برای ارجاع به مطالب این راهنما، راهنمای مرجع را ببینید.
درخواست های مجاز
هنگامی که برنامه شما داده های کاربر غیرعمومی را درخواست می کند، باید دارای یک نشانه مجوز باشد. توکن همچنین برنامه شما را در گوگل شناسایی می کند.
درباره پروتکل های مجوز
برنامه شما باید از OAuth 2.0 برای تأیید درخواست ها استفاده کند. هیچ پروتکل مجوز دیگری پشتیبانی نمی شود. اگر برنامه شما از ورود به سیستم با Google استفاده می کند، برخی از جنبه های مجوز برای شما انجام می شود.
تأیید درخواست ها با OAuth 2.0
درخواستهای Google Sites Data API برای دادههای کاربر غیرعمومی باید توسط یک کاربر تأیید شده مجاز باشد.
جزئیات فرآیند مجوز یا "جریان" برای OAuth 2.0 بسته به نوع برنامه ای که می نویسید تا حدودی متفاوت است. فرآیند کلی زیر برای همه انواع برنامه ها اعمال می شود:
- هنگامی که برنامه خود را ایجاد می کنید، آن را با استفاده از Google API Console ثبت می کنید. سپس Google اطلاعاتی را که بعداً به آن نیاز خواهید داشت، مانند شناسه مشتری و راز مشتری ارائه می دهد.
- Google Sites Data API را در Google API Console فعال کنید. (اگر API در لیست API Console نیست، از این مرحله صرفنظر کنید.)
- هنگامی که برنامه شما نیاز به دسترسی به داده های کاربر دارد، از 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 را مشخص کند. برای تعیین شماره نسخه، از هدر GData-Version
HTTP استفاده کنید:
GData-Version: 1.4
از طرف دیگر، اگر نمیتوانید هدرهای HTTP را تنظیم کنید، میتوانید v=1.4
به عنوان پارامتر پرس و جو در URL تعیین کنید. اما هدر HTTP در صورت امکان ترجیح داده می شود.
توجه : کتابخانه های سرویس گیرنده سرصفحه های نسخه مناسب را به صورت خودکار ارائه می کنند، بنابراین زمانی که از کتابخانه مشتری استفاده می کنید از پارامتر query v=1.4
استفاده نکنید.
فید سایت
فید سایت میتواند برای فهرست کردن سایتهای Google که یک کاربر مالک آن است یا مجوز مشاهده آنها را دارد و همچنین عنوان یک سایت موجود را تغییر دهد استفاده شود. برای دامنههای G Suite، میتوان از آن برای ایجاد یا کپی کل سایت نیز استفاده کرد.
سایت های فهرست بندی
برای فهرست کردن سایتهایی که کاربر به آنها دسترسی دارد، یک درخواست GET
تأیید شده به نشانی اینترنتی زیر ارسال کنید:
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 Site جدید با موضوع "slate" تحت دامنه G Suite example.com
ایجاد می کند. نشانی وب سایت 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 Sites علامت زده شود، یک سایت یک الگو است.
- میتوانید یک سایت را از دامنه دیگری کپی کنید، تا زمانی که به عنوان مالک در سایت منبع فهرست شده باشید.
به روز رسانی ابرداده یک سایت
برای بهروزرسانی عنوان یا خلاصه یک سایت، یک HTTP PUT
به پیوند edit
یک ورودی سایت ارسال کنید. به عنوان مثال، مثال زیر عنوان سایت قبلی را به New Test Site2
و توضیحات آن را به Newer description
به روز می کند.
PUT /feeds/site/example.com/source-site HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> <entry xmlns="http://www.w3.org/2005/Atom" xmlns:gAcl="http://schemas.google.com/acl/2007" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" gd:etag="W/"DEECR38l7I2A9WxNaF0Q.""> <id>https://sites.google.com/feeds/site/example.com/source-site</id> <updated>2009-12-02T23:31:06.184Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-02T23:31:06.184Z</app:edited> <title>New Test Site2</title> <summary>Newer description</summary> <category scheme="http://schemas.google.com/sites/2008#tag" term="Category"/> <link rel="alternate" type="text/html" href="http://sites.google.com/a/example.com/source-site/"/> <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/example.com/source-site"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/source-site"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/source-site"/> <sites:siteName>source-site</sites:siteName> </entry>
اضافه کردن دسته ها
توجه : این ویژگی فقط برای دامنههای G Suite در دسترس است.
G Suite برای سایتهای دامنه شما شامل متا دادههای دستهبندی است که برای دستهبندی سایتها در دامنه شما مفید است. برای افزودن یا بهروزرسانی متا دادههای دسته، یک HTTP PUT
به پیوند edit
ورودی سایت خود ارسال کنید که شامل یک برچسب category
است. خط پررنگ را در مثال زیر ببینید:
PUT /feeds/site/example.com/source-site HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> <entry xmlns="http://www.w3.org/2005/Atom" xmlns:gAcl="http://schemas.google.com/acl/2007" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" gd:etag="W/"DEECR38l7I2A9WxNaF0Q.""> <id>https://sites.google.com/feeds/site/example.com/source-site</id> <updated>2009-12-02T23:31:06.184Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-02T23:31:06.184Z</app:edited> <title>My Team website</title> <summary>This site contains contact information and a summary of major efforts our team owns</summary> <category scheme="http://schemas.google.com/sites/2008#tag" term="Team Site"/> <link rel="alternate" type="text/html" href="http://sites.google.com/a/example.com/my-team-site/"/> <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/example.com/my-team-site"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/my-team-site"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/my-team-site"/> <sites:siteName>my-team-site</sites:siteName> </entry>
این مثال یک سایت موجود را ویرایش می کند و دسته "سایت تیم" را اضافه می کند.
همچنین میتوانید با افزودن برچسبهای <category>
چندین دسته اضافه کنید. خطوط پررنگ را در مثال زیر ببینید:
PUT /feeds/site/example.com/my-team-site HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> <entry xmlns="http://www.w3.org/2005/Atom" xmlns:gAcl="http://schemas.google.com/acl/2007" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" gd:etag="W/"DEECR38l7I2A9WxNaF0Q.""> <id>https://sites.google.com/feeds/site/example.com/my-team-site</id> <updated>2009-12-02T23:31:06.184Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-02T23:31:06.184Z</app:edited> <title>My Team website</title> <summary>This site contains contact information and a summary of major efforts our team owns</summary> <category scheme="http://schemas.google.com/sites/2008#tag" term="Team Site/"> <category scheme="http://schemas.google.com/sites/2008#tag" term="Legal Department/"> <link rel="alternate" type="text/html" href="http://sites.google.com/a/example.com/my-team-site/"/> <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/example.com/my-team-site"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/my-team-site"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/my-team-site"/> <sites:siteName>my-team-site</sites:siteName> </entry>
این مثال دو دسته را اضافه می کند: "سایت تیم" و "بخش حقوقی"
نگاشت آدرس وب
نقشهبرداری آدرس وب به کاربران سایتها امکان میدهد تا دامنههای خود را به یک سایت 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
s در ورودی های سایت (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
به نشانی اینترنتی فید فعالیت ارسال کنید:
https://sites.google.com/feeds/activity/domainName/siteName
پارامتر خوراک | توضیحات |
---|---|
domainName | " site " یا دامنه دامنه میزبانی شده G Suite شما (به عنوان مثال example.com ). |
siteName | نام فضای وب سایت شما؛ در URL سایت یافت می شود (به عنوان مثال myCoolSite ). |
نمونه درخواست و پاسخ:
GET /feeds/activity/site/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> HTTP/1.1 200 OK <?xml version="1.0" encoding="UTF-8"?> <feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/"> <id>https://sites.google.com/feeds/activity/site/siteName</id> <updated>2009-09-10T05:24:23.120Z</updated> <title>Activity</title> <link rel="alternate" type="text/html" href="http://sites.google.com/site/siteName/system/app/pages/recentChanges"/> <link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="https://sites.google.com/feeds/activity/site/siteName"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/activity/site/siteName"/> <generator version="1" uri="http://sites.google.com">Google Sites</generator> <openSearch:startIndex>1</openSearch:startIndex> <entry xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/"CU4GQ3szfSl7ImA9WxNRFUg.""> <id>https://sites.google.com/feeds/activity/site/siteName/940375996952876062</id> <updated>2009-09-10T03:38:42.585Z</updated> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#deletion" label="deletion"/> <title>home</title> <summary type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">User deleted <a href="http://sites.google.com/site/siteName/home">home</a> </div> </summary> <link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="https://sites.google.com/feeds/revision/site/siteName/5409745539831916487"/> <link rel="http://schemas.google.com/sites/2008#current" type="application/atom+xml" href="https://sites.google.com/feeds/content/site/siteName/5409745539831916487"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/activity/site/siteName/940375996952876062"/> <author> <name>User</name> <email>user@gmail.com</email> </author> </entry> <entry xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/"CU8DQn45fyl7ImA9WxNRFUg.""> <id>https://sites.google.com/feeds/activity/site/siteName/7165439066235480082</id> <updated>2009-09-10T03:37:53.027Z</updated> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#edit" label="edit"/> <title>home</title> <summary type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">User2 edited <a href="http://sites.google.com/site/siteName/home">home</a> </div> </summary> <link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="https://sites.google.com/feeds/revision/site/siteName/5409745539831916487"/> <link rel="http://schemas.google.com/sites/2008#current" type="application/atom+xml" href="https://sites.google.com/feeds/content/site/siteName/5409745539831916487"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/activity/site/siteName/7165439066235480082"/> <author> <name>User</name> <email>user@gmail.com</email> </author> </entry> <entry xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/"CU8AR3s4cSl7ImA9WxNRFUg.""> <id>https://sites.google.com/feeds/activity/site/siteName/127448462987345884</id> <updated>2009-09-10T03:37:26.539Z</updated> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#creation" label="creation"/> <title>home</title> <summary type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">User3 created <a href="http://sites.google.com/site/siteName/home">home</a> </div> </summary> <link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="https://sites.google.com/feeds/revision/site/siteName/5409745539831916487"/> <link rel="http://schemas.google.com/sites/2008#current" type="application/atom+xml" href="https://sites.google.com/feeds/content/site/siteName/5409745539831916487"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/activity/site/siteName/127448462987345884"/> <author> <name>User3</name> <email>user3@gmail.com</email> </author> </entry> </feed>
توجه : دسترسی به این فید مستلزم این است که شما یک همکار یا مالک سایت باشید. مشتری شما باید سرصفحه Authorization
صحیح را ارسال کرده و به نشانه به دست آمده در درخواست های مجوز مراجعه کنید.
فید تجدید نظر
برای واکشی تاریخچه ویرایش برای هر ورودی محتوا، یک HTTP GET
به پیوند بازبینی ورودی ارسال کنید:
https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID
پارامتر خوراک | توضیحات |
---|---|
domainName | " site " یا دامنه دامنه میزبانی شده G Suite شما (به عنوان مثال example.com ). |
siteName | نام فضای وب سایت شما؛ در URL سایت یافت می شود (به عنوان مثال myCoolSite ). |
برای یافتن پیوند بازبینی برای یک صفحه/نظر/پیوست/فهرست معین، ابتدا ورودی را از فید محتوا با استفاده از CONTENT_ENTRY_ID آن بازیابی کنید. ورودی بازیابی شده حاوی یک <atom:link>
به فید ویرایش خواهد بود. به عنوان مثال:
<link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID"/>
نمونه درخواست و پاسخ:
GET /feeds/revision/domainName/siteName/CONTENT_ENTRY_ID HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> HTTP/1.1 200 OK <?xml version="1.0" encoding="UTF-8"?> <feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0"> <id>https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID</id> <updated>2009-09-10T04:33:35.337Z</updated> <title>Revisions</title> <link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID"/> <generator version="1" uri="http://sites.google.com">Google Sites</generator> <openSearch:startIndex>1</openSearch:startIndex> <entry gd:etag="W/"CU4GQmA9WxNRFUg.""> <id>https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID/2</id> <updated>2009-09-10T03:38:42.045Z</updated> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#webpage" label="webpage"/> <title>Home</title> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">Latest content here</div> </content> <link rel="alternate" type="text/html" href="http://sites.google.com/domainName/siteName/CONTENT_ENTRY_ID/system/app/pages/admin/compare?wuid=wuid%3Agx%3A4f67c7&rev1=2"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID/2"/> <author> <name>User</name> <email>user@gmail.com</email> </author> <sites:pageName>home</sites:pageName> <sites:revision>2</sites:revision> </entry> <entry gd:etag="W/"CU8DQ388eSl7ImA9WxNRFUg.""> <id>https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID/1</id> <updated>2009-09-10T03:37:52.171Z</updated> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#webpage" label="webpage"/> <title>Home</title> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">Older content here</div> </content> <link rel="alternate" type="text/html" href="http://sites.google.com/domainName/siteName/CONTENT_ENTRY_ID/system/app/pages/admin/compare?wuid=wuid%3Agx%3A4bc7&rev1=1"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID/1"/> <author> <name>User</name> <email>user@gmail.com</email> </author> <sites:pageName>home</sites:pageName> <sites:revision>1</sites:revision> </entry> </feed>
توجه : دسترسی به این فید مستلزم این است که شما یک همکار یا مالک سایت باشید. مشتری شما باید سرصفحه Authorization
صحیح را ارسال کند و به نشانه به دست آمده در درخواست های مجوز ارجاع دهد.
فید محتوا
بازیابی محتوا
فید محتوا محتوای فعلی سایت ها را فهرست می کند. یک درخواست GET
تأیید شده را به URL زیر ارسال کنید:
https://sites.google.com/feeds/content/domainName/siteName
پارامتر خوراک | توضیحات |
---|---|
domainName | " site " یا دامنه دامنه میزبانی شده G Suite شما (به عنوان مثال example.com ). |
siteName | نام فضای وب سایت شما؛ در URL سایت یافت می شود (به عنوان مثال myCoolSite ). |
نتیجه یک فید است که صفحه اول مطالب ورودی در سایت را فهرست می کند. هر ورودی در فید نشان دهنده نوع دیگری از ورودی محتوا است، مانند webpage
، filecabinet
، attachment
، comment
، و غیره. <category scheme="http://schemas.google.com/g/2005#kind">
عنصر تعیین کننده نوع ورودی است. برای فهرستی از مقادیر kind
پشتیبانی، راهنمای مرجع را ببینید.
توجه : این فید ممکن است نیاز به احراز هویت داشته باشد یا نباشد. بسته به مجوزهای اشتراک گذاری سایت. اگر سایت غیرعمومی است، مشتری شما باید سرصفحه Authorization
صحیح را ارسال کند (همانطور که در مثال بالا مشاهده میشود) و به نشانه بهدستآمده در درخواستهای مجوز ارجاع دهد.
GET /feeds/content/domainName/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> HTTP/1.1 200 OK <?xml version="1.0" encoding="UTF-8"?> <feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0"> <id>https://sites.google.com/feeds/content/domainName/siteName</id> <updated>2009-08-31T01:39:20.286Z</updated> <title>Content</title> <link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName"/> <link rel="http://schemas.google.com/g/2005#post" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName"/> <link rel="http://schemas.google.com/g/2005#batch" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/batch""/> <link rel="next" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/?start-index=2"/> <generator version="1" uri="http://sites.google.com">Google Sites</generator> <openSearch:startIndex>1</openSearch:startIndex> <entry gd:etag="W/"Ck8GQXk7fil7ImA9WxNSFk0.""> <id>https://sites.google.com/feeds/content/domainName/siteName/7322156894</id> <updated>2009-08-30T02:53:40.706Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-30T02:53:40.706Z</app:edited> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#webpage" label="webpage"/> <title>Subpage</title> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">Page html content here</div> </content> <link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/6492205817"/> <link rel="alternate" type="text" href="http://sites.google.com/site/siteName/subpage"/> <link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="https://sites.google.com/feeds/revision/domainName/siteName/7322156894"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/7322156894"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/7322156894"/> <author> <name>User</name> <email>user@gmail.com</email> </author> <sites:pageName>subpage</sites:pageName> <sites:revision>5</sites:revision> </entry> <entry gd:etag="W/"CkMBQH08fCl7ImA9WxNSFk0.""> <id>https://sites.google.com/feeds/content/domainName/siteName/5930635231</id> <updated>2009-08-30T02:47:31.374Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-30T02:47:31.374Z</app:edited> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#listitem" label="listpage"/> <title/> <link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/5930635231"/> <link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="https://sites.google.com/feeds/revision/domainName/siteName/5930635231"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/5930635231"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/5930635231"/> <author> <name>User</name> <email>user@gmail.com</email> </author> <sites:revision>1</sites:revision> <gs:field index="A" name="Issue/Feature">Implement cool feature X</gs:field> <gs:field index="B" name="Priority">P2</gs:field> <gs:field index="C" name="Owner"/> <gs:field index="D" name="Resolved"/> </entry> <entry gd:etag="W/"AkYHQ3ozcCl7ImA9WxJaE08.""> <id>https://sites.google.com/feeds/content/domainName/siteName/1265948545471894517</id> <updated>2009-08-03T19:35:32.488Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-03T19:35:32.488Z</app:edited> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#filecabinet" label="filecabinet"/> <title>files</title> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">Page html content here</div> </content> <link rel="alternate" type="text" href="https://sites.google.com/domainName/siteName/files"/> <link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="https://sites.google.com/feeds/revision/domainName/siteName/12671894517"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/12671894517"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/12671894517"/> <author> <name>User</name> <email>user@gmail.com</email> </author> <gd:feedLink href="httpn://sites.google.com/feeds/content/domainName/siteName?parent=12671894517"/> <sites:pageName>files</sites:pageName> <sites:revision>1</sites:revision> </entry> ... </feed>
توجه : این فقط چند نتیجه اول است. برای صفحه در کل فید محتوا، پیوند "بعدی" فید را دنبال کنید:
<link rel="next" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/?start-index=2"/>
برای توضیح عناصر مشترک Atom، به مرجع پروتکل داده Google مراجعه کنید. عناصری که معنای خاصی برای Sites API کلاسیک دارند در زیر توضیح داده شدهاند. برخی از ورودیهای نوع خاصی ویژگیهای اضافی خواهند داشت (که در زیر ذکر نشده است)، در حالی که دیگران این ویژگی را ندارند. به عنوان مثال، یک ورودی listitem
ممکن است دارای عناصر <gs:field>
باشد، در حالی که یک ورودی webpage
اینگونه نیست.
عنصر | توضیحات |
---|---|
<content ...> | متن داخلی بدنه HTML صفحه است. برای برخی از ورودی ها (مثلاً پیوست ها)، این عنصر حاوی یک ویژگی src است که به فایل اشاره می کند. |
<link rel="alternate" ...> | پیوند به صفحه یا مورد در Google Sites. |
<link rel="http://schemas.google.com/sites/2008#revision" ...> | ویژگی href به فید ویرایش ورودی اشاره می کند. |
<link rel="http://schemas.google.com/sites/2008#parent" ...> | ویژگی href به ورودی والد ورودی اشاره می کند. |
<link rel="http://schemas.google.com/sites/2008#template" ...> | ویژگی href به صفحه الگوی ورودی اشاره می کند. |
<category scheme="http://schemas.google.com/g/2005#kind" ...> | label نوع ورودی است. |
<category term="http://schemas.google.com/g/2005#template" ...> | label=template که نشان دهنده ورودی است یک الگو است. |
<gd:feedLink> | ویژگی href به فرزندان والدین ورودی اشاره می کند. |
<sites:pageName> | نام فضای وب صفحه؛ مربوط به نام در URL صفحه است. |
<sites:revision> | شماره ویرایش فعلی |
نمونه پرس و جو فید محتوا
میتوانید فید محتوا را با استفاده از برخی از پارامترهای جستجوی استاندارد Google Data API و پارامترهای خاص Sites API کلاسیک جستجو کنید. برای اطلاعات بیشتر و فهرست کامل پارامترهای پشتیبانی شده، به راهنمای مرجع مراجعه کنید.
بازیابی انواع ورودی خاص
برای واکشی فقط نوع خاصی از ورودی، از پارامتر kind
استفاده کنید. این مثال فقط ورودی های webpage
را برمی گرداند:
GET /feeds/content/domainName/siteName?kind=webpage
برای برگرداندن بیش از یک نوع ورودی، هر kind
با "،" جدا کنید. این مثال ورودی های filecabinet
و listpage
را برمی گرداند:
GET /feeds/content/domainName/siteName?kind=filecabinet,listpage
همچنین، میتوانید از قالب استاندارد برای جستجوی Google Data /-/category
به جای پارامتر kind
استفاده کنید:
GET /feeds/content/domainName/siteName/-/filecabinet|listpage
بازیابی الگوهای صفحه
این مثال فقط صفحات template
را برمی گرداند:
GET /feeds/content/domainName/siteName/-/template
برای برگرداندن همه انواع ورودی و شامل صفحات template
، از:
GET /feeds/content/domainName/siteName/-/template|-template
بازیابی صفحه به مسیر
اگر مسیر نسبی یک صفحه را در سایت گوگل می دانید، می توانید از پارامتر 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 سفارشی
بهطور پیشفرض، مثال قبلی تحت نشانی اینترنتی http://sites.google.com/ domainName / siteName /new-webpage-title
ایجاد میشود و عنوان صفحه «عنوان صفحه وب جدید» دارد. یعنی <atom:title>
به عنوان new-webpage-title
برای URL عادی می شود. برای سفارشی کردن مسیر URL صفحه، می توانید عنصر <sites:pageName>
را تنظیم کنید.
این مثال یک filecabinet
جدید با عنوان صفحه «ذخیرهسازی فایل» ایجاد میکند، اما صفحه را در آدرس 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>
، در صورت وجود. بایدaz, AZ, 0-9, -, _
را برآورده کند. - اگر pageName موجود نباشد
<atom:title>
نباید تهی باشد. عادی سازی عبارت است از برش + کوچک کردن فضای سفید به "-" و حذف نویسه هایی که باaz, AZ, 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 است. ' و 'قالب'، به ترتیب.
این مثال یک الگوی webpage
جدید ایجاد می کند.
POST /feeds/content/domainName/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> Content-Length: 464 Content-Type: application/atom+xml <entry xmlns="http://www.w3.org/2005/Atom" xmlns:sites="http://schemas.google.com/sites/2008"> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#webpage" label="webpage"/> <category scheme="http://schemas.google.com/g/2005#labels" term="http://schemas.google.com/g/2005#template" label="template"/> <title>Webpage Template</title> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">This weekend. My place.</div> </content> </entry>
ایجاد صفحات از یک الگو
مشابه ایجاد الگوهای صفحه، میتوانید یک صفحه جدید از یک الگو را با اضافه کردن یک <link>
با rel='http://schemas.google.com/sites/2008#template' که به پیوند خود یک الگوی صفحه اشاره میکند نمونهسازی کنید. .
این مثال یک صفحه filecabinet
جدید از یک قالب صفحه موجود ایجاد می کند که یک کابینت فایل را تعریف می کند.
POST /feeds/content/domainName/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> Content-Length: 464 Content-Type: application/atom+xml <entry xmlns="http://www.w3.org/2005/Atom" xmlns:sites="http://schemas.google.com/sites/2008"> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#filecabinet" label="filecabinet"/> <title>File Cabinet Page From Template</title> <link rel='http://schemas.google.com/sites/2008#template' type='application/atom+xml' href='https://sites.google.com/feeds/content/domainName/siteName/ENTRY_ID'/> </entry>
توجه : علیرغم اینکه الگویی که یک <category>
را تعریف می کند، هنوز یک مورد در ورودی شما لازم است. همچنین توجه داشته باشید، اگر عنصر <content>
را وارد کنید، سرور آن را رد خواهد کرد.
در حال آپلود فایل ها
درست مانند Google Sites، API به شما امکان می دهد پیوست ها را در صفحات کابینت فایل و صفحات والد آپلود کنید.
برای آپلود یک پیوست به والدین، یک درخواست HTTP POST
به آدرس اینترنتی فید محتوا ارسال کنید:
https://sites.google.com/feeds/content/domainName/siteName
بدنه POST
باید یک درخواست چند قسمتی MIME باشد تا محتویات فایل را با <atom:entry>
حاوی فراداده پیوست ترکیب کند. <atom:entry>
باید به پیوند خود ورودی والد ارجاع دهد تا مشخص کند پیوست کجا ایجاد می شود. برای اطلاعات بیشتر به ایجاد صفحات فرعی مراجعه کنید.
در حال آپلود پیوست ها
در اینجا نمونه ای از آپلود یک فایل PDF در کابینت فایل با شناسه PARENT_ENTRY_ID
آورده شده است. پیوست با عنوان «فایل PDF» و یک توضیح (اختیاری)، «بسته منابع انسانی» ایجاد خواهد شد.
POST /feeds/content/domainName/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> Content-Length: 7221984 Content-Type: multipart/related; boundary=END_OF_PART --END_OF_PART Content-Type: application/atom+xml <entry xmlns="http://www.w3.org/2005/Atom"> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#attachment" label="attachment"/> <link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/PARENT_ENTRY_ID"/> <title>PDF File</title> <summary>HR packet</summary> </entry> --END_OF_PART Content-Type: application/pdf ... pdf contents here ... --END_OF_PART--
اگر آپلود با موفقیت انجام شود، سرور با یک 201 Created
و یک کپی از ورودی پیوست جدید ایجاد شده پاسخ خواهد داد.
آپلود یک پیوست در یک پوشه
برای آپلود یک پیوست در یک پوشه موجود در یک filecabinet
، دستهبندی را با ویژگی «term» به نام پوشه اضافه کنید:
<category scheme="http://schemas.google.com/sites/2008#folder" term="FolderName">
پیوست های وب
پیوست های وب انواع خاصی از پیوست ها هستند. در اصل، آنها پیوندهایی به فایل های دیگر در وب هستند که می توانید آنها را به لیست های کابینت فایل خود اضافه کنید. این ویژگی مشابه روش آپلود «افزودن فایل با URL» در رابط کاربری Google Sites است.
توجه : پیوست های وب را فقط می توان تحت یک کابینت فایل ایجاد کرد. آنها را نمی توان در انواع دیگر صفحات آپلود کرد.
این مثال یک webattachment
در زیر کابینت فایل که توسط شناسه FILECABINET_ENTRY_ID
ارجاع شده است ایجاد می کند. عنوان و توضیحات (اختیاری) آن به ترتیب روی «GoogleLogo» و «رنگهای زیبا» تنظیم شده است.
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="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
پاسخ می دهد.
اگر میخواهید مطمئن شوید ورودیای را که از زمان بازیابی توسط کلاینت دیگری تغییر کرده است، حذف نمیکنید، یک هدر HTTP If-Match
که حاوی مقدار ETag ورودی اصلی است، اضافه کنید. شما می توانید مقدار ETag ورودی اصلی را با بررسی ویژگی gd:etag
عنصر <entry>
تعیین کنید.
اگر میخواهید ورودی را بدون توجه به اینکه شخص دیگری از زمان بازیابی شما آن را بهروزرسانی کرده است حذف کنید، از If-Match: *
و ETag را وارد نکنید. (در این حالت، نیازی به بازیابی ورودی قبل از حذف آن نیست.)
برای اطلاعات بیشتر در مورد ETags، راهنمای مرجع Google Data APIs را ببینید.
دانلود پیوست ها
هنگامی که یک ورودی پیوست دارید، می توانید فایل را با ارسال یک HTTP GET
تأیید شده به لینک <content>
src ورودی دانلود کنید. نمونه ای از پیوند محتوای PDF:
<content type="application/pdf" src="http://502377765-a-google-com-s-sites.googlegroups.com/feeds/media/content/domainName/siteName/678942036"/>
خوراک ACL
مروری بر مجوزهای اشتراک گذاری (ACL)
هر ورودی ACL در فید ACL نشان دهنده نقش دسترسی یک موجودیت خاص است، خواه یک کاربر، یک گروه از کاربران، یک دامنه یا دسترسی پیش فرض (که یک سایت عمومی است). ورودیها فقط برای نهادهایی با دسترسی صریح نشان داده میشوند - یک ورودی برای هر آدرس ایمیل در پانل «افراد با دسترسی» در صفحه اشتراکگذاری رابط کاربری Google Sites نشان داده میشود. بنابراین، ادمین های دامنه نشان داده نمی شوند، حتی اگر به یک سایت دسترسی ضمنی داشته باشند.
نقش ها
عنصر نقش نشان دهنده سطح دسترسی است که یک موجودیت می تواند داشته باشد. چهار مقدار ممکن برای عنصر gAcl:role
وجود دارد:
- خواننده - بیننده (معادل دسترسی فقط خواندنی).
- نویسنده - یک همکار (معادل دسترسی خواندن/نوشتن).
- مالک - معمولاً مدیر سایت (معادل دسترسی خواندن/نوشتن).
محدوده ها
عنصر scope نشان دهنده موجودیتی است که این سطح دسترسی را دارد. پنج نوع ممکن از عنصر gAcl:scope
وجود دارد:
- کاربر — یک مقدار آدرس ایمیل، به عنوان مثال "user@gmail.com".
- گروه — یک آدرس ایمیل گروه Google، به عنوان مثال "group@domain.com".
- دامنه — یک نام دامنه G Suite، به عنوان مثال «domain.com».
- دعوت - کاربری که به سایت دعوت شده است، اما هنوز به ACL سایت اضافه نشده است. (اگر gdata 1.3 یا پایین تر مشخص شده باشد، در دسترس نیست.)
- پیش فرض — تنها یک محدوده ممکن از نوع "default" وجود دارد که هیچ مقداری ندارد (به عنوان مثال
<gAcl:scope type="default">
). این محدوده خاص دسترسی هر کاربر را به طور پیش فرض در یک سایت عمومی کنترل می کند.
توجه : دامنهها نمیتوانند مقدار gAcl:role
را روی دسترسی «مالک» تنظیم کرده باشند، آنها فقط میتوانند خواننده یا نویسنده باشند.
درباره محدوده "دعوت".
وقتی یک یا چند کاربر را که قبلاً حساب Google ندارند به ACL اضافه کنید، API محدوده دعوت را برمیگرداند. API نشانی اینترنتی را با یک توکن تعبیه شده برمی گرداند که باید به کاربران دعوت شده خود ارائه دهید تا به آنها اجازه دهید دعوت را بپذیرند.
این روش دعوت به شما امکان میدهد تا کاربران غیر Google را بدون اطلاع قبلی از آدرس ایمیلی که میخواهند استفاده کنند دعوت کنید. تا زمانی که کاربران با توکن تعبیه شده روی URL دعوت کلیک کنند، می توانند با استفاده از هر آدرس ایمیلی که می خواهند برای دسترسی ثبت نام کنند. علاوه بر این، چندین کاربر به طور بالقوه می توانند از این URL برای پذیرش دعوت استفاده کنند، بنابراین در صورت دعوت از یک کاربر یا گروهی از کاربران، این می تواند مفید باشد.
توجه: محدوده "دعوت" فقط در نسخه gdata 1.4 و بالاتر موجود است. اگر به صراحت 1.3 یا پایین تر را مشخص کنید، این کار نمی کند.
در حال بازیابی فید ACL
فید ACL می تواند برای کنترل مجوزهای اشتراک گذاری سایت استفاده شود و از طریق URI زیر قابل دسترسی است:
https://sites.google.com/feeds/acl/site/domainName/siteName
پارامتر خوراک | توضیحات |
---|---|
domainName | " site " یا دامنه دامنه میزبانی شده G Suite شما (به عنوان مثال example.com ). |
siteName | نام فضای وب سایت شما؛ در URL سایت یافت می شود (به عنوان مثال myCoolSite ). |
شایان ذکر است که هر ورودی در فید سایت حاوی پیوندی به این فید است:
<link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName"/>
برای بازیابی مجوزهای اشتراک گذاری سایت، ارسال و GET
HTTP به URI فید ACL:
GET /feeds/acl/site/domainName/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here>
سرور با یک 200 OK
و یک فید از ورودی های ACL پاسخ می دهد:
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:gAcl="http://schemas.google.com/acl/2007" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0"> <id>https://sites.google.com/feeds/acl/site/domainName/siteName</id> <updated>2009-12-03T22:01:05.963Z</updated> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/> <title>Acl</title> <link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName"/> <link rel="http://schemas.google.com/g/2005#post" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName"/> <generator version="1" uri="http://sites.google.com">Google Sites</generator> <openSearch:startIndex>1</openSearch:startIndex> <entry> <id>https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserA%40gmail.com</id> <updated>2009-12-03T22:01:05.963Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-03T22:01:05.963Z</app:edited> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserA%40google.com"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserA%40google.com"/> <gAcl:scope type="user" value="userA@google.com"/> <gAcl:role value="owner"/> </entry> <entry> <id>https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserB%40gmail.com</id> <updated>2009-12-03T22:01:05.963Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-03T22:01:05.963Z</app:edited> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserB%40gmail.com"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserB%40gmail.com"/> <gAcl:scope type="user" value="userB@gmail.com"/> <gAcl:role value="writer"/> </entry> <entry> <id>https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserC%40gmail.com</id> <updated>2009-12-03T22:01:05.963Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-03T22:01:05.963Z</app:edited> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserC%40gmail.com"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserC%40gmail.com"/> <gAcl:scope type="user" value="userC@gmail.com"/> <gAcl:role value="reader"/> </entry> ... </feed>
به اشتراک گذاری یک سایت
فید ACL درخواستهای GET
، POST
و PUT
را میپذیرد. برای درج یک نقش جدید در فید ACL، به سادگی یک درخواست POST
به فید ACL سایت صادر کنید.
توجه : برخی از ACL های اشتراک گذاری ممکن است فقط در صورتی امکان پذیر باشد که دامنه به گونه ای پیکربندی شده باشد که چنین مجوزهایی را مجاز کند (مثلاً اگر اشتراک گذاری خارج از دامنه برای دامنه های G Suite فعال باشد و غیره).
این مثال یک همکار (نویسنده) جدید به سایت اضافه می کند:
POST /feeds/acl/site/domainName/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> <entry xmlns="http://www.w3.org/2005/Atom" xmlns:gAcl='http://schemas.google.com/acl/2007'> <category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/acl/2007#accessRule'/> <gAcl:role value='writer'/> <gAcl:scope type='user' value='new_writer@example.com'/> </entry>
یک 201 Created
و ورودی جدید در یک درج موفقیت آمیز برگردانده می شود:
<entry> <id>https://sites.google.com/feeds/acl/site/domainName/siteName/user%3Anew_writer%40example.com</id> <updated>2009-12-03T22:01:05.963Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-03T22:01:05.963Z</app:edited> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3Anew_writer%40example.com"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3Anew_writer%40example.com"/> <gAcl:role value='writer'/> <gAcl:scope type='user' value='new_writer@example.com'/> </entry>
دعوت از کاربران از طریق محدوده "دعوت".
اگر کاربرانی را اضافه کنید که حساب Google ندارند، API نشانی اینترنتی را برمیگرداند که باید به کاربرانی که میخواهید دعوت کنید ارائه دهید. پس از کلیک بر روی URL، آنها می توانند با ورود با یک حساب کاربری موجود یا ایجاد یک حساب جدید، به سایت دسترسی پیدا کنند.
یک دعوت موفق، یک 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' آن روی 'ویرایش' تنظیم شده است. برای مثال قبلی، آن پیوند این است:
<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ی است که شما مشخص کرده اید یا خیر. اگر تگهای ET مطابقت داشته باشند، آیتم تغییر نکرده است و سرور یک کد وضعیت HTTP 304 Not Modified
یا یک کد وضعیت HTTP 412 Precodition Failed
را برمیگرداند. هر دوی این کدهای وضعیت نشان میدهند که موردی که قبلاً بازیابی کردهاید بهروز است.
اگر تگ های ET با هم مطابقت نداشته باشند، پس از آخرین باری که شما آن را درخواست کرده اید، مورد تغییر یافته است و سرور آن مورد را برمی گرداند.
برای اطلاعات بیشتر در مورد ETags، راهنمای مرجع 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>