«میانای برنامهسازی کاربردی Google Sites» کلاسیک به برنامههای شما اجازه میدهد به محتوای Google Site دسترسی داشته باشند، آن را منتشر کنند، و تغییر دهند. علاوهبراین، برنامه شما میتواند فهرست فعالیتهای اخیر را درخواست کند، سابقه بازبینی را واکشی کند، و پیوستها و فایلها را بارگذاری/بارگیری کند.
مخاطبان
این سند فرض میکند که شما ایدههای کلی پشت پروتکل Google Data APIs را درک میکنید.
این سند برای برنامهنویسانی درنظر گرفته شده است که میخواهند برنامههای کاربری بنویسند که بتواند با «سایتساز Google» تعامل داشته باشد. این سند مجموعهای از نمونههای تعاملات پایه «میانای برنامهسازی کاربردی داده» را بااستفاده از XML/HTTP خام، همراه با توضیحات ارائه میدهد. پساز خواندن این سند، با خواندن مثالهای مختص زبان که در راهنماهای دیگر در نوار پیمایش سمت راست پیدا میکنید، میتوانید درباره تعامل با API بااستفاده از کتابخانههای کارخواه ما بیشتر بدانید.
برای مرجع مطالب این راهنما، به راهنمای مرجع مراجعه کنید.
درحال صدور مجوز برای درخواستها
وقتی برنامه شما دادههای کاربر غیرعمومی را درخواست میکند، باید یک کد مجوز را اضافه کند. این کد همچنین برنامه شما را به Google معرفی میکند.
درباره پروتکلهای مجوز
برنامه شما باید از OAuth 2.0 برای مجاز کردن درخواستها استفاده کند. از هیچ پروتکل مجوز دیگری پشتیبانی نمیشود. اگر برنامه شما از ورود به سیستم با Google استفاده میکند، برخیاز جنبههای صدور مجوز برای شما مدیریت میشود.
مجوز دادن به درخواستها با OAuth 2.0
درخواستهای «میانای برنامهسازی کاربردی دادههای Google Sites» برای دادههای کاربر غیرعمومی باید توسط کاربر اصالتسنجیشده مجاز شود.
جزئیات فرایند مجوز، یا «جریان»، برای OAuth 2.0 بسته به نوع برنامهای که مینویسید کمی متفاوت است. فرایند کلی زیر برای همه انواع درخواستها اعمال میشود:
- وقتی برنامهتان را ایجاد میکنید، آن را بااستفاده از Google API Console ثبت میکنید. سپس Google اطلاعاتی را که بعداً به آنها نیاز خواهید داشت، مثل شناسه کارخواه و رمز کارخواه، ارائه میدهد.
- «میانای برنامهسازی کاربردی دادههای Google Sites» را در «کنسول Google API» فعال کنید. (اگر API در «کنسول API» فهرست نشده است، از این مرحله رد شوید.)
- وقتی برنامه شما نیاز به دسترسی به دادههای کاربر دارد، از Google یک دامنه دسترسی خاص درخواست میکند.
- Google صفحه موافقت را به کاربر نمایش میدهد و از او میخواهد به برنامه شما اجازه دهد برخیاز دادههایش را درخواست کند.
- اگر کاربر موافقت کند، Google به برنامه شما کد دسترسی کوتاهمدت میدهد.
- برنامه شما دادههای کاربر را درخواست میکند و کد دسترسی را به درخواست پیوست میکند.
- اگر Google تشخیص دهد که درخواست و کد شما معتبر است، دادههای درخواستی را برمیگرداند.
برخیاز جریانها شامل مراحل اضافی هستند، مانند استفاده از رمزهای بازآوری برای دریافت رمزهای دسترسی جدید. برای کسب اطلاعات دقیق درباره جریانهای انواع مختلف برنامهها، به اسناد OAuth 2.0 در Google مراجعه کنید.
در اینجا اطلاعات محدوده OAuth 2.0 برای Google Sites Data API آمده است:
https://sites.google.com/feeds/
برای درخواست دسترسی بااستفاده از OAuth 2.0، برنامه شما به اطلاعات حوزه و همچنین اطلاعاتی که Google هنگام ثبت برنامه شما ارائه میدهد (مانند شناسه سرویسگیرنده و رمز سرویسگیرنده) نیاز دارد.
مشخص کردن نسخه
هر درخواستی که به Google Sites Data API ارسال میکنید باید نسخه ۱.۴ را مشخص کند. برای مشخص کردن شماره نسخه،
از سرایند GData-Version HTTP استفاده کنید:
GData-Version: 1.4
یا اگر نمیتوانید سرایندهای HTTP را تنظیم کنید، میتوانید v=1.4 را بهعنوان پارامتر پُرسمان در نشانی وب مشخص کنید. اما درصورت امکان، سرصفحه
HTTP ترجیح داده میشود.
توجه: کتابخانههای مشتری سرصفحههای نسخه مناسب را بهطور خودکار تأمین میکنند، بنابراین وقتی از کتابخانه مشتری استفاده میکنید از پارامتر پُرسمان 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 دردسترس است.
سایتهای جدید را میتوان با ایجاد یک 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 ایجاد میکند.
نشانی وب سایت http://sites.google.com/a/example.com/source-site/ خواهد بود.
اگر سایت باموفقیت ایجاد شود، سرور با 201 Created پاسخ خواهد داد.
ورودی پاسخ شامل عناصری است که توسط سرور اضافه شده است، مانند پیوند به سایت، پیوند به فید فهرست کنترل دسترسی سایت، نام سایت، عنوان، و خلاصه.
<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 علامت زده شده باشد.
- میتوانید سایتی را از دامنه دیگری کپی کنید، مشروط بر اینکه در سایت منبع بهعنوان مالک فهرست شده باشید.
بهروزرسانی فرادادههای سایت
برای بهروزرسانی عنوان یا خلاصه سایت، 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» نگاشت کنند. برای مثال، 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 را مشخص کنند. اگر این پارامتر وجود نداشته باشد، webAddressMappings در ورودیهای سایت (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>
توجه داشته باشید، نگاشتهای نشانی وب را میتوان در زمان ایجاد/کپی کردن سایت نیز مشخص کرد.
فید فعالیتها
با واکشی کردن فید فعالیت میتوانید فعالیت اخیر (تغییرات) «سایت» را واکشی کنید. هر ورودی در فید فعالیت حاوی اطلاعاتی درباره تغییری است که در «سایت» ایجاد شده است.
برای پُرسمان فید فعالیتها، یک GET HTTP به نشانی وب فید فعالیتها ارسال کنید:
https://sites.google.com/feeds/activity/domainName/siteName
| پارامتر فید | شرح |
|---|---|
domainName | «site» یا دامنه دامنه میزبانیشده G Suite شما (برای نمونه example.com). |
siteName | نام فضای وب سایت شما؛ در نشانی وب سایت یافت میشود (برای نمونه، 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 | نام فضای وب سایت شما؛ در نشانی وب سایت یافت میشود (برای نمونه، 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 را به نشانی وب زیر ارسال کنید:
https://sites.google.com/feeds/content/domainName/siteName
| پارامتر فید | شرح |
|---|---|
domainName | «site» یا دامنه دامنه میزبانیشده G Suite شما (برای نمونه example.com). |
siteName | نام فضای وب سایت شما؛ در نشانی وب سایت یافت میشود (برای نمونه، 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» مراجعه کنید.
عناصری که برای «میانای برنامهسازی کاربردی» کلاسیک «سایتساز» معنای خاصی دارند در زیر شرح داده شدهاند. برخیاز ورودیهای نوع دارای داراییهای اضافی (در زیر فهرست نشده است) خواهند بود، درحالیکه
برخی دیگر این داراییها را نخواهند داشت. برای مثال، ورودی 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> | نام فضای وب صفحه؛ مطابق با نام موجود در نشانی وب صفحه. |
<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
بهجای پارامتر kind، میتوانید از قالب استاندارد برای پُرسمان /-/category «دادههای Google» استفاده کنید:
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 و نسخهای از ورودی پاسخ میدهد.
ساختن عناصر/صفحهها در مسیرهای نشانی وب سفارشی
بهطور پیشفرض، مثال قبلی در نشانی وب
http://sites.google.com/domainName/siteName/new-webpage-title ایجاد میشود و
عنوان صفحه آن «عنوان صفحه وب جدید» خواهد بود. یعنی <atom:title> برای نشانی وب به new-webpage-title عادیسازی میشود.
برای سفارشیسازی مسیر نشانی وب صفحه، میتوانید عنصر <sites:pageName> را تنظیم کنید.
این مثال filecabinet جدیدی با عنوان صفحه «ذخیرهسازی فایل» ایجاد میکند، اما با مشخص کردن عنصر <sites:pageName>، صفحه را در نشانی وب http://sites.google.com/domainName/siteName/files ایجاد میکند.
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>
سرور از قوانین اولویت زیر برای نامگذاری مسیر نشانی وب صفحه استفاده میکند:
-
<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»
و «الگو» بهترتیب است.
این مثال الگوی 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»، این 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، دستهای با مشخصه «واژه» تنظیمشده روی نام پوشه اضافه کنید:
<category scheme="http://schemas.google.com/sites/2008#folder" term="FolderName">پیوستهای وب
پیوستهای وب نوع خاصی از پیوستها هستند. اساساً، آنها پیوندهایی به فایلهای دیگر در وب هستند که میتوانید به فهرستگان فایلکابینت خود اضافه کنید. این ویژگی مشابه روش بارگذاری «افزودن فایل با نشانی وب» در واسط کاربر Google Sites است.
توجه: پیوستهای وب فقط میتوانند در زیر یک فایل کابینت ایجاد شوند. نمیتوانند در انواع دیگر صفحهها بارگذاری شوند.
این مثال webattachment را در زیر filecabinet که با شناسه FILECABINET_ENTRY_ID ارجاع داده شده است ایجاد میکند.
عنوان و (اختیاری) شرح آن بهترتیب روی «GoogleLogo» و «nice colors» تنظیم شده است.
POST /feeds/content/domainName/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> Content-Type: application/atom+xml Content-Length: 531 <entry xmlns="http://www.w3.org/2005/Atom"> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#webattachment" label="webattachment"/> <link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/FILECABINET_ENTRY_ID"/> <title>GoogleLogo</title> <summary>nice colors</summary> <content type="image/gif" src="http://www.google.com/images/logo.gif"></content> </entry>
POST پیوندی در فایل کابینت کاربر ایجاد میکند که به تصویر در «http://www.google.com/images/logo.gif» اشاره میکند.
درحال بهروزرسانی محتوا
فراداده (عنوان، نام صفحه، و غیره) و محتوای صفحه هر صفحهای را میتوان با یک درخواست PUT به پیوند edit ویرایش کرد.
بدنه درخواست باید حاوی ورودی Atom باشد که صفحه بهروزرسانیشده را توصیف میکند. استثنای این قانون ورودی پیوست است که در آن ورودی فقط میتواند برای بهروزرسانی فراداده پیوست استفاده شود.
برای تغییر محتوای فایل پیوستشده، کافی است دادههای خام را بهعنوان بدنه درخواست PUT به پیوند edit-media پیوست اضافه کنید. همچنین میتوانید بااستفاده از درخواست چندبخشی MIME، هم فراداده و هم محتوای فایل پیوستشده را بهطور همزمان بهروز کنید.
برای اینکه مطمئن شوید بهروزرسانی شما تغییرات مشتری دیگری را رونویسی نمیکند، مقدار ETag ورودی اصلی را اضافه کنید. میتوانید این کار را با
ارائه مقدار ETag در سرصفحه HTTP If-Match، یا با افزودن مشخصه gd:etag ورودی اصلی در
ورودی بهروزشده انجام دهید. برای تعیین مقدار ETag ورودی اصلی، عنصر <entry> و مشخصه gd:etag را بررسی کنید.
برای ورودیهای رسانه، ETag رسانه ممکن است در ویژگی gd:etag پیوند edit-media دردسترس باشد.
اگر میخواهید ورودی را بدون توجه به اینکه شخص دیگری آن را از زمان بازیابی شما بهروزرسانی کرده است یا نه بهروز کنید، از
If-Match: * استفاده کنید و ETag را اضافه نکنید. برای اطلاعات بیشتر درباره ETags، به
راهنمای مرجع Google Data APIs مراجعه کنید.
بهروزرسانی فراداده یا محتوای HTML یک مورد
برای بهروزرسانی فراداده یا محتوای HTML یک ورودی، یک PUT HTTP به پیوند edit ورودی ارسال کنید.
در زیر نمونهای از بهروزرسانی ورودی listpage (که با شناسه ENTRY_ID نشان داده میشود) با تغییرات زیر آمده است:
- عنوان به «محتوای بهروزشده» تغییر میکند
- محتوای HTML بهروزشده
- سرستون اول فهرست به «مالک» بهروزرسانی میشود
- مسیر نشانی وب صفحه توسط عنصر
<sites:pageName>اصلاح شده است
PUT /feeds/content/domainName/siteName/ENTRY_ID Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> Content-Length: 816 Content-Type: application/atom+xml <entry xmlns="http://www.w3.org/2005/Atom" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/"CEEBRn0ymA9WxJWEUw.""> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#listpage" label="listpage"/> <title>Updated Title</title> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">Updated Content</div> </content> <gs:worksheet name="listpage"/> <gs:header row="1"/> <gs:data startRow="2"> <gs:column index="A" name="Owner"/> <gs:column index="B" name="Description"/> <gs:column index="C" name="Completed"/> </gs:data> <sites:pageName>newPagePath</sites:pageName> </entry>
توجه: ورودی (همانطور که سرور برمیگرداند) عناصر بیشتری نسبتبه مثال بالا خواهد داشت.
جایگزین کردن محتوای پیوست
در زیر نمونهای از جایگزینی محتوای پیوست آورده شده است، اما فراداده آن بدون تغییر باقی میماند. ازآنجاییکه درخواست حاوی محتوای جدید است،
از پیوند edit-media ورودی پیوست استفاده میشود.
PUT /feeds/media/content/domainName/siteName/ATTACHMENT_ENTRY_ID Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> Content-Length: 70581 Content-Type: application/msword ... doc contents here ...
درحال بهروزرسانی فراداده پیوست + محتوا
در زیر نمونهای از بهروزرسانی همزمان فراداده پیوست و محتوای آن آورده شده است. نام پیوست به «عنوان جدید» بهروزرسانی خواهد شد
و محتوای آن با محتوای فایل .zip جایگزین خواهد شد. ازآنجاییکه درخواست حاوی محتوای فایل جدید است، از پیوند edit-media ورودی پیوست استفاده میشود.
توجه داشته باشید که افزودن ETag برای فراداده، If-Match ضمنی برای محتوای رسانهای نیز فراهم میکند، زیرا هرگونه بهروزرسانی محتوای رسانهای باعث تغییر ETag فراداده میشود.
PUT /feeds/media/content/domainName/siteName/ATTACHMENT_ENTRY_ID Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> Content-Type: multipart/related; boundary="END_OF_PART" --END_OF_PART Content-Type: application/atom+xml <?xml version='1.0' encoding='UTF-8'?> <entry xmlns="http://www.w3.org/2005/Atom" xmlns:gd="http://schemas.google.com/g/2005" gd:etag="BxAaTxRZAyp7ImBq"> <link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/ATTACHMENT_ENTRY_ID"/> <title>New Title</title> </entry> --END_OF_PART Content-Type: application/zip ... zip contents here ... --END_OF_PART
درحال حذف محتوا
برای برداشتن موردی از «سایت Google»، ابتدا ورودی را بازیابی کنید، سپس DELETE
درخواستی به نشانی وب edit ورودی ارسال کنید. این همان نشانی وبی است که هنگام بهروزرسانی فراداده یا محتوای HTML یک مورد استفاده میشود.
DELETE /feeds/content/domainName/siteName/ENTRY_ID Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> If-Match: <ETag or * here>
اگر ورودی باموفقیت حذف شود، سرور با 200 OK HTTP پاسخ میدهد.
اگر میخواهید مطمئن شوید ورودیای را که از زمان بازیابی آن توسط مشتری دیگری تغییر کرده است حذف نمیکنید، سرصفحه
HTTP If-Match را که حاوی مقدار ETag ورودی اصلی است اضافه کنید. با بررسی عنصر <entry> و مشخصه gd:etag میتوانید مقدار ETag ورودی اصلی را تعیین کنید.
اگر میخواهید ورودی را بدون توجه به اینکه شخص دیگری آن را از زمان بازیابی شما بهروزرسانی کرده است یا نه حذف کنید، از
If-Match: * استفاده کنید و ETag را اضافه نکنید. (در این مورد، لازم نیست ورودی را قبلاز حذف کردن آن بازیابی کنید.)
برای اطلاعات بیشتر درباره ETags، به راهنمای مرجع Google Data APIs مراجعه کنید.
درحال بارگیری پیوستها
پساز اینکه ورودی پیوست را داشتید، میتوانید با ارسال یک HTTP GET اصیل به پیوند src <content> ورودی، فایل را بارگیری کنید. نمونهای از پیوند محتوای PDF:
<content type="application/pdf" src="http://502377765-a-google-com-s-sites.googlegroups.com/feeds/media/content/domainName/siteName/678942036"/>
فید ACL
نمای کلی اجازههای همرسانی (ACL)
هر ورودی ACL در فید ACL نشاندهنده نقش دسترسی یک نهاد خاص است، خواه کاربر، گروه کاربران، دامنه، یا دسترسی پیشفرض (که یک سایت عمومی است). ورودیها فقط برای نهادهایی با دسترسی صریح نشان داده میشود - یک ورودی برای هر نشانی ایمیل در پانل «افراد دارای دسترسی» در صفحه همرسانی واسط کاربر Google Sites نشان داده میشود. بنابراین، سرپرستان دامنه نشان داده نخواهند شد، حتی اگر دسترسی ضمنی به سایت داشته باشند.
نقشها
عنصر نقش نشاندهنده سطح دسترسی است که یک نهاد میتواند داشته باشد. چهار مقدار ممکن برای عنصر gAcl:role وجود دارد:
- خواننده — یک بیننده (معادل دسترسی فقط خواندنی).
- نویسنده — یک همیار (معادل دسترسی خواندن/نوشتن).
- مالک — معمولاً سرپرست سایت (معادل دسترسی خواندن/نوشتن).
دوربین تفنگ
عنصر محدوده نشاندهنده نهادی است که این سطح دسترسی را دارد. پنج نوع ممکن برای عنصر gAcl:scope وجود دارد:
- کاربر — مقدار نشانی ایمیل، برای نمونه «user@gmail.com».
- گروه — نشانی ایمیل «گروه Google»، برای نمونه «group@domain.com».
- دامنه — نام دامنه G Suite، برای نمونه «domain.com».
- دعوتشده — کاربری که به سایت دعوت شده است، اما هنوز به فهرست کنترل دسترسی سایت اضافه نشده است. (اگر gdata 1.3 یا پایینتر مشخص شده باشد دردسترس نیست.)
- پیشفرض — فقط یک محدوده ممکن از نوع «پیشفرض» وجود دارد که مقدار ندارد
(برای نمونه
<gAcl:scope type="default">). این محدوده خاص دسترسی را که هر کاربر بهطور پیشفرض در سایت عمومی دارد کنترل میکند.
توجه: دامنهها نمیتوانند مقدار gAcl:role <0x0A> را روی دسترسی «مالک» تنظیم کنند، آنها فقط میتوانند خواننده یا نویسنده باشند.
درباره محدوده «دعوت».
وقتی یک یا چند کاربر را به فهرست کنترل دسترسی اضافه میکنید که ازقبل حساب Google ندارند، API محدوده دعوت را برمیگرداند. «میانای برنامهسازی کاربردی» نشانی وبی با کد جاسازیشده برمیگرداند که باید آن را به کاربران دعوتشدهتان ارائه دهید تا بتوانند دعوت را بپذیرند.
این روش دعوت به شما امکان میدهد کاربران غیر Google را بدون اطلاع قبلی از نشانی ایمیلی که میخواهند استفاده کنند دعوت کنید. تا زمانی که کاربران روی نشانی وب دعوت با کد جاسازیشده کلیک کنند، میتوانند با هر نشانی ایمیلی که میخواهند برای دسترسی ثبتنام کنند. علاوهبراین، چندین کاربر میتوانند بهطور بالقوه از این نشانی وب برای پذیرفتن دعوت استفاده کنند، بنابراین اگر یک کاربر یا گروهی از کاربران را دعوت میکنید، این نشانی وب میتواند مفید باشد.
توجه: محدوده «دعوت» فقط در gdata نسخه ۱.۴ و بالاتر دردسترس است. اگر بهطور صریح نسخه ۱.۳ یا پایینتر را مشخص کنید، این کار نخواهد کرد.
درحال بازیابی فید ACL
از فید ACL میتوان برای کنترل اجازههای همرسانی سایت استفاده کرد و ازطریق نشانی وب زیر قابلدسترس است:
https://sites.google.com/feeds/acl/site/domainName/siteName
| پارامتر فید | شرح |
|---|---|
domainName | «site» یا دامنه دامنه میزبانیشده G Suite شما (برای نمونه example.com). |
siteName | نام فضای وب سایت شما؛ در نشانی وب سایت یافت میشود (برای نمونه، 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 به نشانی وب فید 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 سایت صادر کنید.
توجه: برخیاز فهرستهای کنترل دسترسی همرسانی فقط درصورتی امکانپذیر است که دامنه برای اجازه دادن به چنین اجازههایی پیکربندی شده باشد (برای نمونه، اگر همرسانی خارج از دامنه برای دامنههای 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 ندارند، «میانای برنامهسازی کاربردی» نشانی وبی را برمیگرداند که باید آن را به کاربرانی که میخواهید دعوت کنید ارائه دهید. پساز کلیک کردن روی نشانی وب، آنها میتوانند با ورود به سیستم با یک حساب موجود یا ایجاد یک حساب جدید، به سایت دسترسی پیدا کنند.
دعوت موفقیتآمیز 201 Created و ورودی جدیدی را برمیگرداند که شامل نشانی وبی است که باید به کاربر ارسال کنید:
<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 فهرست یا ورودی را مشخص کنید که میتوانید آن را در
عنصر <feed> یا عنصر <entry> در مشخصه gd:etag پیدا کنید.
نمونهای از استفاده از فید سایت:
GET /feeds/site/domainName/myOtherTestSite/ GData-Version: 1.4 If-None-Match: W/"Ck8GQXk7fil7ImA9WxNSFk0."
وقتی سرور این درخواست را دریافت میکند، بررسی میکند که آیا مورد درخواستی شما همان ETag را دارد که
شما مشخص کردهاید یا نه. اگر ETags مطابقت داشته باشند، یعنی مورد تغییر نکرده است و سرور یا کد وضعیت
HTTP 304 Not Modified یا کد وضعیت HTTP 412 Precodition Failed را برمیگرداند. هر دو کد وضعیت نشان میدهند که موردی که قبلاً بازیابی کردهاید بهروز است.
اگر ETags مطابقت نداشته باشند، یعنی مورد از آخرین باری که آن را درخواست کردهاید اصلاح شده است و سرور مورد را برمیگرداند.
برای اطلاعات بیشتر درباره ETags، به راهنمای مرجع Google Data APIs مراجعه کنید.
پردازش دستهای
درخواستهای دستهای به مشتری شما این امکان را میدهد که چندین عملیات را در یک درخواست اجرا کند، بهجای اینکه هر عملیات را بهصورت جداگانه ارسال کند.
سرور تا حد امکان تغییرات درخواستی را انجام میدهد و اطلاعات وضعیتی را برمیگرداند که میتوانید از آن برای ارزیابی موفقیت یا عدم موفقیت هر عملیات استفاده کنید. برای جزئیات بیشتر درباره پردازش دستهای در Google Data API، به پردازش دستهای با Google Data APIs مراجعه کنید
هر عملیاتی در فید دستهای عنصر <id> دارد، بهجز عملیات درج.
این عنصر همان نشانی وب درخواستی است که معمولاً هنگام بهروزرسانی، حذف، یا پُرسمان کردن فید محتوا استفاده میکنید.
برای مثال، اگر درحال بهروزرسانی ویرایش هستید، <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>