راهنمای توسعه دهنده: پروتکل

مهم : این نسخه قدیمی این صفحه است. برای آخرین نسخه، از پیوندهای موجود در نوار ناوبری سمت چپ استفاده کنید.

Blogger Data API به برنامه های مشتری اجازه می دهد تا محتوای Blogger را در قالب فیدهای Google Data API مشاهده و به روز کنند.

برنامه مشتری شما می تواند از Blogger Data API برای ایجاد پست های وبلاگ جدید، ویرایش یا حذف پست های وبلاگ موجود و پرس و جو برای پست های وبلاگی که با معیارهای خاصی مطابقت دارند استفاده کند.

این سند علاوه بر ارائه پیش‌زمینه‌ای در مورد قابلیت‌های Blogger Data API، نمونه‌هایی از تعاملات پایه داده API با استفاده از XML خام و HTTP را ارائه می‌دهد. پس از خواندن این سند، ممکن است بخواهید با خواندن بخش‌های زبان برنامه‌نویسی راهنمای این برنامه‌نویس، درباره تعامل با API با استفاده از کتابخانه‌های سرویس گیرنده ما اطلاعات بیشتری کسب کنید.

مطالب

مخاطب

این سند برای برنامه نویسانی در نظر گرفته شده است که می خواهند برنامه های مشتری بنویسند که می توانند با استفاده از XML و HTTP با Blogger تعامل داشته باشند.

این سند فرض می‌کند که شما ایده‌های کلی پشت پروتکل Google Data APIs را درک می‌کنید.

اگر از سیستم یونیکس استفاده می‌کنید و می‌خواهید نمونه‌های موجود در این سند را بدون نوشتن هیچ کدی امتحان کنید، ممکن است ابزارهای خط فرمان یونیکس curl یا wget مفید باشند. برای اطلاعات بیشتر، به صفحات کتابچه راهنمای آن ابزارهای کمکی مراجعه کنید.

برای اطلاعات مرجع Blogger Data API، به راهنمای مرجع پروتکل مراجعه کنید.

شروع کردن

ایجاد حساب بلاگر

ممکن است بخواهید برای اهداف آزمایشی برای یک حساب Blogger ثبت نام کنید . Blogger از حساب‌های Google استفاده می‌کند، بنابراین اگر از قبل یک حساب Google دارید، همه چیز آماده است.

احراز هویت در سرویس بلاگر

با استفاده از Blogger Data API می توانید به فیدهای عمومی و خصوصی دسترسی داشته باشید. فیدهای عمومی نیازی به احراز هویت ندارند، اما فقط خواندنی هستند. اگر می‌خواهید وبلاگ‌ها را اصلاح کنید، مشتری شما باید قبل از درخواست فیدهای خصوصی، احراز هویت کند. این می تواند با استفاده از یکی از دو روش احراز هویت کند: احراز هویت پروکسی AuthSub یا احراز هویت نام کاربری/گذرواژه ClientLogin .

برای اطلاعات بیشتر در مورد احراز هویت با APIهای Google Data به طور کلی، به مستندات احراز هویت مراجعه کنید.

اکثر نمونه‌های بخش‌های بعدی این سند فرض می‌کنند که شما احراز هویت مناسب را ارائه می‌کنید.

احراز هویت پروکسی AuthSub

احراز هویت پراکسی AuthSub توسط برنامه‌های کاربردی وب استفاده می‌شود که باید کاربران خود را در حساب‌های Google احراز هویت کنند. اپراتور وب سایت و کد مشتری به نام کاربری و رمز عبور کاربر بلاگر دسترسی ندارند. در عوض، کلاینت توکن های AuthSub ویژه ای را دریافت می کند که به مشتری اجازه می دهد از طرف یک کاربر خاص عمل کند. برای اطلاعات بیشتر، به مستندات AuthSub مراجعه کنید.

وقتی کاربر برای اولین بار از برنامه شما بازدید می کند، هنوز احراز هویت نشده است. در این مورد، شما باید برخی از اطلاعات و لینکی را نمایش دهید که کاربر را به صفحه Google هدایت می کند تا درخواست شما برای دسترسی به وبلاگ خود را تأیید کند.

پارامترهای پرس و جو زیر در URL AuthSubRequest گنجانده شده است:

بعدی
آدرس صفحه ای که گوگل باید پس از احراز هویت کاربر را به آن هدایت کند.
دامنه
نشان می دهد که برنامه برای دسترسی به فیدهای Blogger درخواست یک رمز می کند. رشته scope مورد استفاده http://www.blogger.com/feeds/ است (البته با URL-encoded).
امن
نشان می دهد که آیا مشتری یک توکن امن درخواست می کند یا خیر.
جلسه
نشان می دهد که آیا رمز برگشتی را می توان با یک توکن چند منظوره (جلسه) مبادله کرد یا خیر.

URL AuthSubRequest ممکن است به شکل زیر باشد:

https://www.google.com/accounts/AuthSubRequest?scope=http%3A%2F%2Fwww.blogger.com%2Ffeeds%2F&session=1&secure=0&next=http%3A%2F%2Fwww.example.com%2Fwelcome.html

کاربر پیوند به سایت Google را دنبال می کند و در حساب Google خود احراز هویت می کند.

پس از احراز هویت کاربر، سیستم AuthSub آنها را به آدرس اینترنتی که در پارامتر پرس و جو next URL AuthSubRequest مشخص کرده اید هدایت می کند. سیستم AuthSub یک نشانه احراز هویت را به عنوان مقدار پارامتر کوئری token به آن URL اضافه می کند. به عنوان مثال:

http://www.example.com/welcome.html?token=yourAuthToken

این مقدار توکن نشان دهنده یک توکن AuthSub یکبار مصرف است. در این مثال، از آنجایی که session=1 مشخص شده است، می توان این نشانه را با یک نشانه جلسه AuthSub با فراخوانی سرویس AuthSubSessionToken با توکن یکبار مصرف در سربرگ Authorization، به صورت زیر مبادله کرد:

GET /accounts/AuthSubSessionToken HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Authorization: AuthSub token="yourAuthToken"
User-Agent: Java/1.5.0_06
Host: www.google.com
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive

پاسخ سرویس AuthSubSessionToken شامل یک هدر Token است که حاوی نشانه جلسه و یک سرصفحه Expiration است که نشان می دهد تا چه مدت این نشانه معتبر باقی می ماند.

سپس برنامه شما می تواند از مقدار نشانه جلسه در سرصفحه Authorization تعاملات بعدی با بلاگر استفاده کند.

در اینجا نمونه ای از درخواست HTTP، حاوی یک رمز غیر ایمن است که ممکن است به Blogger ارسال کنید:

GET /feeds/blogID/blogs/posts/defaults HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Authorization: AuthSub token="yourSessionToken"
User-Agent: Java/1.5.0_06
Host: www.blogger.com
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive

احراز هویت نام کاربری/گذرواژه ClientLogin

اگر کلاینت شما یک کلاینت «نصب شده» مستقل و تک کاربره است (مانند یک برنامه دسکتاپ) از احراز هویت ClientLogin استفاده کنید. برای درخواست توکن احراز هویت با استفاده از مکانیزم ClientLogin، یک درخواست POST به آدرس اینترنتی زیر ارسال کنید:

https://www.google.com/accounts/ClientLogin

بدنه POST باید شامل مجموعه‌ای از پارامترهای پرس و جو باشد که شبیه پارامترهایی هستند که توسط یک فرم HTML ارسال می‌شوند و با استفاده از نوع محتوای application/x-www-form-urlencoded . این پارامترها عبارتند از:

ایمیل
آدرس ایمیل کاربر.
Passwd
رمز عبور کاربر.
خدمات
نام سرویس بلاگر blogger است. (برای سایر نام‌های سرویس، به لیست نام سرویس مراجعه کنید.)
نوع حساب
هنگام استفاده از Blogger API همیشه باید روی GOOGLE تنظیم شود. تنظیم نکردن این پارامتر باعث می‌شود کاربرانی که دارای حساب G Suite نیز هستند، دسترسی نداشته باشند.
منبع
برنامه مشتری شما را شناسایی می کند. باید به شکل companyName - applicationName - versionID باشد. نمونه ها از نام exampleCo-exampleApp-1 استفاده می کنند.

برای اطلاعات بیشتر در مورد پارامترها، به سند تأیید اعتبار برای برنامه های نصب شده مراجعه کنید.

اگر درخواست احراز هویت ناموفق باشد، سرور یک کد وضعیت HTTP 403 Forbidden را برمی‌گرداند.

اگر موفق شد، سرور یک کد وضعیت HTTP 200 OK ، به اضافه سه کد الفبایی عددی طولانی در بدنه پاسخ را برمی‌گرداند: SID، LSID، و Auth. مقدار Auth نشانه مجوزی است که با هر یک از درخواست‌های بعدی خود به Blogger ارسال می‌کنید، بنابراین یک کپی از آن مقدار را نگه دارید. می توانید مقادیر SID و LSID را نادیده بگیرید.

از آنجایی که همه درخواست‌ها به فیدهای خصوصی نیاز به احراز هویت دارند، باید هدر مجوز را در تمام تعاملات بعدی با Blogger با استفاده از قالب زیر تنظیم کنید:

Authorization: GoogleLogin auth=yourAuthToken

جایی که yourAuthToken رشته Auth است که توسط درخواست ClientLogin برگردانده شده است.

برای اطلاعات بیشتر درباره احراز هویت ClientLogin، از جمله درخواست‌ها و پاسخ‌های نمونه، به مستندات احراز هویت برای برنامه‌های نصب‌شده مراجعه کنید.

توجه : برای همه درخواست ها در یک جلسه معین از یک نشانه استفاده کنید. برای هر درخواست بلاگر یک نشانه جدید دریافت نکنید.

توجه : همانطور که در مستندات ClientLogin توضیح داده شده است، درخواست احراز هویت ممکن است با شکست مواجه شود و یک چالش CAPTCHA درخواست کند. اگر می‌خواهید Google چالش CAPTCHA را صادر و رسیدگی کند، کاربر را به https://www.google.com/accounts/DisplayUnlockCaptcha?service=blogger بفرستید (به جای URL مربوط به CAPTCHA که در اسناد ClientLogin ارائه شده است).

بازیابی لیستی از وبلاگ ها

Blogger Data API خوراکی را ارائه می دهد که وبلاگ ها را برای یک کاربر خاص فهرست می کند. آن خوراک به عنوان "متافید" شناخته می شود.

برای بازیابی لیست وبلاگ ها، یک HTTP GET به آدرس اینترنتی زیر ارسال کنید:

http://www.blogger.com/feeds/userID/blogs

توجه : همچنین می‌توانید شناسه کاربری default را جایگزین کنید، که به Blogger می‌گوید فهرست وبلاگ‌ها را برای کاربری که اعتبارنامه‌اش همراه با درخواست است، برگرداند.

یک ورودی در متافید ممکن است به شکل زیر باشد:

<entry>
  <id>tag:blogger.com,1999:blog-blogID.post-postID</id>
  <published>2006-08-02T18:44:43.089-07:00</published>
  <updated>2006-11-08T18:10:23.020-08:00</updated>
  <title type='text'>Lizzy's Diary</title>
  <summary type='html'>Being the journal of Elizabeth Bennet</summary>
  <link rel='alternate' type='text/html'
    href='http://blogName.blogspot.com/'>
  </link>
  <link rel='http://schemas.google.com/g/2005#feed'
    type='application/atom+xml'
    href='http://blogName.blogspot.com/feeds/posts/default'>
  </link>
  <link rel='http://schemas.google.com/g/2005#post'
    type='application/atom+xml'
    href='http://www.blogger.com/feeds/blogID/posts/default'>
  </link>
  <link rel='self' type='application/atom+xml'
    href='http://www.blogger.com/feeds/userID/blogs/blogID'>
  </link>
  <link rel='edit' type='application/atom+xml'
      href='http://www.blogger.com/feeds/userID/blogs/blogID'>
  </link>
  <author>
    <name>Elizabeth Bennet</name>
    <email>noreply@blogger.com</email>
    <uri>http://www.blogger.com/profile/profileID</uri>
  </author>
</entry>

برای اطلاعات در مورد معنای هر یک از این عناصر، به سند مرجع پروتکل Google Data APIs یا مشخصات Atom 1.0 مراجعه کنید.

اگر درخواست شما به دلایلی ناموفق باشد، Blogger ممکن است کد وضعیت دیگری را برگرداند. اطلاعات بیشتر درباره کدهای وضعیت HTTP نیز در سند مرجع پروتکل Google Data APIs موجود است.

ایجاد پست ها

Blogger Data API به شما امکان ایجاد و انتشار مطالب جدید وبلاگ و همچنین ایجاد پیش نویس ورودی ها را می دهد.

انتشار پست وبلاگ

پس از احراز هویت، می توانید مطالب جدید وبلاگ را منتشر کنید.

ابتدا یک نمایش XML از پست برای انتشار ایجاد کنید. این XML باید به شکل عنصر Atom <entry> باشد که ممکن است به شکل زیر باشد:

<entry xmlns='http://www.w3.org/2005/Atom'>
  <title type='text'>Marriage!</title>
  <content type='xhtml'>
    <div xmlns="http://www.w3.org/1999/xhtml">
      <p>Mr. Darcy has <em>proposed marriage</em> to me!</p>
      <p>He is the last man on earth I would ever desire to marry.</p>
      <p>Whatever shall I do?</p>
    </div>
  </content>
  <category scheme="http://www.blogger.com/atom/ns#" term="marriage" />
  <category scheme="http://www.blogger.com/atom/ns#" term="Mr. Darcy" />
</entry>

توجه : تنظیم یک نویسنده سفارشی برای پست ها در حال حاضر پشتیبانی نمی شود. همه پست های جدید به گونه ای ظاهر می شوند که گویی توسط کاربر تأیید شده فعلی ایجاد شده اند.

برای انتشار این مطلب، آن را به شرح زیر به آدرس پست وبلاگ ارسال کنید. ابتدا عنصر <entry> Atom خود را با استفاده از نوع محتوای application/atom+xml در متن درخواست POST جدید قرار دهید. سپس با قرار دادن عنصر <link> که در آن صفت rel با #post ختم می شود، آدرس پست وبلاگ را در متافید پیدا کنید. آدرس پست وبلاگ به عنوان ویژگی href این عنصر داده می شود که در این قالب است:

http://www.blogger.com/feeds/blogID/posts/default

توجه : این نشانی اینترنتی همان URL در تگ <link rel="service.post"> است که در بخش <head> نسخه قابل خواندن برای انسان وبلاگ ظاهر می شود.

Blogger با استفاده از ورودی ارسالی شما یک پست وبلاگ ایجاد می کند، سپس یک کد وضعیت HTTP 201 CREATED را به همراه یک کپی از پست جدید به شکل عنصر <entry> برمی گرداند. ورودی بازگشتی همان ورودی است که ارسال کردید، اما حاوی عناصر مختلفی است که توسط Blogger اضافه شده است، مانند عنصر <id> .

اگر درخواست شما به دلایلی ناموفق باشد، Blogger ممکن است کد وضعیت دیگری را برگرداند. برای اطلاعات در مورد کدهای وضعیت، به سند مرجع پروتکل Google Data API مراجعه کنید.

ایجاد پیش نویس پست وبلاگ

پست‌های پیش‌نویس مانند پست‌های عمومی ایجاد می‌شوند، اما با یک عنصر <app:control> به ورودی اضافه می‌شود که نشان می‌دهد پست (هنوز) نباید منتشر شود.

این عنصر <app:control> باید حاوی یک عنصر <app:draft> در کودکی باشد:

<app:control xmlns:app='http://purl.org/atom/app#'>
  <app:draft>yes</app:draft>
</app:control>

داده های موجود در عنصر <app:draft> باید رشته yes باشد تا پست به عنوان پیش نویس شناخته شود.

می‌توانید با بازیابی پست پیش‌نویس، تنظیم داده‌های عنصر <app:draft> روی رشته no و سپس به‌روزرسانی پست، یک پست وبلاگ پیش‌نویس موجود را به یک پست منتشر شده تبدیل کنید. بازیابی و به روز رسانی پست ها در دو بخش بعدی پوشش داده شده است.

توجه : برای اطلاعات بیشتر در مورد پروتکل انتشار اتم، از جمله فضاهای نام <app:control> و <app:draft> ، به RFC 5023 مراجعه کنید.

در حال بازیابی پست ها

بخش‌های زیر نحوه بازیابی فهرستی از پست‌های وبلاگ، با و بدون پارامترهای پرس و جو را شرح می‌دهند.

می‌توانید بدون احراز هویت، فید عمومی Blogger را درخواست کنید. بنابراین، هنگام بازیابی پست های وبلاگ از یک وبلاگ عمومی، نیازی به تنظیم پارامتر مجوز ندارید.

بازیابی همه پست های وبلاگ

برای بازیابی پست های کاربر، یک درخواست HTTP GET به آدرس اینترنتی فید وبلاگ ارسال کنید. Blogger سپس فید حاوی ورودی های وبلاگ مناسب را برمی گرداند. به عنوان مثال، برای دریافت لیستی از پست های وبلاگ برای liz@gmail.com، درخواست HTTP زیر را به Blogger ارسال کنید (البته با مقدار مناسب به جای blogID ):

GET http://www.blogger.com/feeds/blogID/posts/default

سپس Blogger یک کد وضعیت HTTP 200 OK و یک فید استاندارد Atom 1.0 حاوی پست‌های وبلاگ را برمی‌گرداند.

در زیر نمونه ای از فید برای یک وبلاگ با تنها یک پست است. توجه داشته باشید که ما این مثال را کمی ویرایش کرده ایم تا برای انسان خواناتر شود. به ویژه، یک فید واقعی بلاگر حاوی شناسه‌ها و نشانی‌های اینترنتی واقعی است.

<feed xmlns='http://www.w3.org/2005/Atom'>
  <id>tag:blogger.com,1999:blog-blogID</id>
  <updated>2006-11-08T18:10:23.020-08:00</updated>
  <title type='text'>Lizzy's Diary</title>
  <link rel='alternate' type='text/html'
    href='http://blogName.blogspot.com/index.html'>
  </link>
  <link rel='http://schemas.google.com/g/2005#feed'
    type='application/atom+xml'
    href='http://blogName.blogspot.com/feeds/posts/default'>
  </link>
  <link rel='self' type='application/atom+xml'
    href='http://blogName.blogspot.com/feeds/posts/default'>
  </link>
  <author>
    <name>Elizabeth Bennet</name>
    <email>noreply@blogger.com</email>
    <uri>http://www.blogger.com/profile/profileID</uri>
  </author>
  <generator version='7.00' uri='http://www2.blogger.com'>Blogger</generator>
  <entry>
    <id>tag:blogger.com,1999:blog-blogID.post-postID</id>
    <published>2006-11-08T18:10:00.000-08:00</published>
    <updated>2006-11-08T18:10:14.954-08:00</updated>
    <title type='text'>Quite disagreeable</title>
    <content type='html'>&lt;p&gt;I met Mr. Bingley's friend Mr. Darcy
      this evening. I found him quite disagreeable.&lt;/p&gt;</content>
    <link rel='alternate' type='text/html'
      href='http://blogName.blogspot.com/2006/11/quite-disagreeable.html'>
    </link>
    <link rel='self' type='application/atom+xml'
      href='http://blogName.blogspot.com/feeds/posts/default/postID'>
    </link>
    <link rel='edit' type='application/atom+xml'
      href='http://www.blogger.com/feeds/blogID/posts/default/postID'>
    </link>
    <author>
      <name>Elizabeth Bennet</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/profileID</uri>
    </author>
  </entry>
</feed>

بازیابی پست ها با استفاده از پارامترهای پرس و جو

Blogger Data API به شما امکان می‌دهد مجموعه‌ای از ورودی‌ها را درخواست کنید که با معیارهای مشخص شده مطابقت دارند، مانند درخواست پست‌های وبلاگ منتشر شده یا به‌روزرسانی شده در یک محدوده تاریخ معین.

به عنوان مثال، برای ارسال یک جستجوی محدوده تاریخ، پارامترهای published-min و published-max به URL درخواست اضافه کنید. برای دریافت تمام ورودی‌های وبلاگ ایجاد شده بین 16 مارس 2008 تا 24 مارس 2008، یک درخواست HTTP به آدرس اینترنتی فید وبلاگ ارسال کنید:

GET http://www.blogger.com/feeds/blogID/posts/default?published-min=2008-03-16T00:00:00&published-max=2008-03-24T23:59:59

وقتی آن درخواست GET ارسال می‌کنید، Blogger یک کد وضعیت HTTP 200 OK و یک فید حاوی پست‌های وبلاگی که در محدوده تاریخی که شما تعیین کرده‌اید ایجاد شده است، برمی‌گرداند.

پارامترهای updated-min و updated-max ممکن است برای به‌روزرسانی همه ورودی‌های وبلاگ در یک محدوده مشخص استفاده شوند. با این حال، توجه داشته باشید که این پارامترها نادیده گرفته می شوند مگر اینکه پارامتر orderby نیز روی updated تنظیم شود.

Blogger Data API از پارامترهای جستجوی زیر پشتیبانی می کند:

alt
نوع فید برای بازگشت، مانند atom (پیش‌فرض) یا rss .
/category
دسته بندی ها (همچنین به عنوان برچسب شناخته می شود) را برای فیلتر کردن نتایج فید مشخص می کند. برای مثال، http://www.blogger.com/feeds/ blogID /posts/default/-/Fritz/Laurie ورودی‌هایی را با هر دو برچسب Fritz و Laurie برمی‌گرداند.
حداکثر نتایج
حداکثر تعداد ورودی برای بازگشت.
با سفارش
ترتیبی که برای بازگرداندن ورودی‌ها، مانند lastmodified (پیش‌فرض)، starttime ، یا updated .
منتشر شده-دقیقه، منتشر شده-حداکثر
محدوده تاریخ انتشار ورودی.
شروع-شاخص
ایندکس بر اساس 1 اولین نتیجه ای که بازیابی می شود (برای صفحه بندی).
به روز شده-min، به روز-حداکثر
محدودیت در تاریخ های به روز رسانی ورودی. این پارامترهای پرس و جو نادیده گرفته می شوند مگر اینکه پارامتر orderby روی updated تنظیم شود.

برای اطلاعات بیشتر در مورد پارامترهای پرس و جو، به راهنمای مرجع API داده Blogger و راهنمای مرجع Google Data APIs مراجعه کنید.

به روز رسانی پست ها

برای به‌روزرسانی یک پست وبلاگ موجود، ابتدا ورودی مورد نظر برای به‌روزرسانی را بازیابی می‌کنید، سپس آن را تغییر می‌دهید، و سپس یک درخواست PUT را با ورودی به‌روزرسانی شده در متن پیام، به URL ویرایش پست ارسال می‌کنید. مطمئن شوید که مقدار <id> در PUT شما دقیقاً با <id> ورودی موجود مطابقت دارد.

URL ویرایش در ورودی زیر مشخص شده است:

<entry>
  <id>tag:blogger.com,1999:blog-blogID.post-postID</id>
  <published>2006-11-08T18:10:00.000-08:00</published>
  <updated>2006-11-08T18:10:14.954-08:00</updated>
  <title type='text'>Quite disagreeable</title>
  <content type='html'>&lt;p&gt;I met Mr. Bingley's friend Mr. Darcy
    this evening. I found him quite disagreeable.&lt;/p&gt;</content>
  <link rel='alternate' type='text/html'
    href='http://blogName.blogspot.com/2006/11/quite-disagreeable.html'>
  </link>
  <link rel='self' type='application/atom+xml'
    href='http://blogName.blogspot.com/feeds/posts/default/postID'>
  </link>
  <link rel='edit' type='application/atom+xml'
    href='http://www.blogger.com/feeds/blogID/posts/default/postID'>
  </link>
  <category scheme="http://www.blogger.com/atom/ns#" term="Mr. Bingley" />
  <category scheme="http://www.blogger.com/atom/ns#" term="Mr. Darcy" />
  <author>
    <name>Elizabeth Bennet</name>
    <email>noreply@blogger.com</email>
    <uri>http://www.blogger.com/profile/profileID</uri>
  </author>
</entry>

مهم : برای اطمینان از سازگاری رو به جلو، مطمئن شوید که هنگام PUT یک ورودی به روز شده، تمام XML موجود در هنگام بازیابی ورودی از Blogger را حفظ کنید. در غیر این صورت، وقتی موارد جدید را پیاده‌سازی می‌کنیم و عناصر <new-awesome-feature> را در فید اضافه می‌کنیم، مشتری شما آن‌ها را بر نمی‌گرداند و کاربران شما را از دست خواهند داد. کتابخانه های سرویس گیرنده Google Data API همه به درستی این کار را انجام می دهند، بنابراین اگر از یکی از کتابخانه ها استفاده می کنید، همه چیز آماده است.

توجه : تغییر داده های نویسنده مرتبط با پست ها در حال حاضر پشتیبانی نمی شود.

نکته عیب یابی : برخی فایروال ها پیام های HTTP PUT را مسدود می کنند. برای دور زدن این موضوع، می‌توانید یک هدر X-HTTP-Method-Override: PUT در یک درخواست POST قرار دهید. برای جزئیات، به سند اصول پروتکل Google Data API مراجعه کنید.

حذف پست ها

برای حذف یک پست، یک درخواست DELETE به URL ویرایش پست ارسال کنید. این همان URL است که برای به‌روزرسانی پست‌ها استفاده می‌شود.

نکته عیب‌یابی : برخی فایروال‌ها پیام‌های HTTP DELETE را مسدود می‌کنند. برای دور زدن این موضوع، می‌توانید یک هدر X-HTTP-Method-Override: DELETE در یک درخواست POST قرار دهید. برای جزئیات، به سند اصول پروتکل Google Data API مراجعه کنید.

نظرات

Blogger Data API امکان ایجاد، بازیابی و حذف نظرات را فراهم می کند. به روز رسانی نظرات پشتیبانی نمی شود (و نه در رابط وب موجود است).

ایجاد نظرات

برای ارسال نظر، یک عنصر Atom <entry> مانند شکل زیر ایجاد کنید:

  <entry xmlns='http://www.w3.org/2005/Atom'>
    <title type="text">This is my first comment</title>
    <content type="html">This is my first comment</content>
  </entry>

برای انتشار این نظر، عنصر <entry> Atom خود را در متن درخواست POST جدید با استفاده از نوع محتوای application/atom+xml قرار دهید. سپس درخواست POST را به URL مناسب بلاگر ارسال کنید:

POST http://www.blogger.com/feeds/blogID/postID/comments/default

توجه : در حال حاضر، فقط می‌توانید برای وبلاگی که متعلق به کاربر تأیید شده است، نظر ارسال کنید.

توجه : تنظیم یک نویسنده سفارشی برای نظرات در حال حاضر پشتیبانی نمی شود. همه نظرات جدید به گونه ای ظاهر می شوند که گویی توسط کاربر تأیید شده فعلی ایجاد شده اند.

بازیابی نظرات

می‌توانید نظرات یک پست خاص را با ارسال یک GET به آدرس اینترنتی فید نظرات این پست بازیابی کنید:

GET http://www.blogger.com/feeds/blogID/postID/comments/default

یا می توانید نظرات همه پست ها را با استفاده از URL خوراک نظرات وبلاگ دریافت کنید:

GET http://www.blogger.com/feeds/blogID/comments/default

این درخواست‌ها یک فید نظرات را برمی‌گردانند که به شکل زیر است:

<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/"
         xmlns:thr="http://purl.org/syndication/thread/1.0">
  <id>tag:blogger.com,1999:blog-blogID.post-postID.comment-commentID</id>
  <updated>2007-04-04T21:56:29.803-07:00</updated>
  <title type="text">My Blog : Time to relax</title>
  <link rel="alternate" type="text/html" href="http://blogName.blogspot.com/2007/04/first-post.html"/>
  <link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blogName.blogspot.com/feeds/postID/comments/default"/>
  <link rel="self" type="application/atom+xml" href="http://blogName.blogspot.com/feeds/postID/comments/default"/>
  <author>
    <name>Blog Author name</name>
  </author>
  <generator version="7.00" uri="http://www2.blogger.com">Blogger</generator>
  <openSearch:totalResults>1</openSearch:totalResults>
  <openSearch:startIndex>1</openSearch:startIndex>
  <entry>
    <id>tag:blogger.com,1999:blog-blogID.post-commentID</id>
    <published>2007-04-04T21:56:00.000-07:00</published>
    <updated>2007-04-04T21:56:29.803-07:00</updated>
    <title type="text">This is my first comment</title>
    <content type="html">This is my first comment</content>
    <link rel="alternate" type="text/html" href="http://blogName.blogspot.com/2007/04/first-post.html#commentID"/>
    <link rel="self" type="application/atom+xml" href="http://blogName.blogspot.com/feeds/postID/comments/default/commentID"/>
    <link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/blogID/postID/comments/default/commentID"/>
    <thr:in-reply-to href="http://blogName.blogspot.com/2007/04/first-post.html" 
                     ref="tag:blogger.com,1999:blog-blogID.post-postID" 
                     source="http://www.blogger.com/feeds/posts/default/blogID"
                     type="text/html"/>
    <author>
      <name>Blog Author name</name>
      <email>blog_author@gmail.com</email>
      <uri>http://www.blogger.com/profile/userID</uri>
    </author>
    <thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' 
         href='http://blogName.blogspot.com/2007/04/first-post.html' 
         ref='tag:blogger.com,1999:blog-blogID.post-postID' 
         source='http://blogName.blogspot.com/feeds/posts/default/postID'
         type='text/html' />
  </entry>
</feed>

حذف نظرات

برای حذف نظر، یک درخواست DELETE را به URL ویرایش نظر ارسال کنید. این URL در فید نظرات بالا برجسته شده است.

فرمت صادرات

بلاگر به کاربران اجازه می دهد تا وبلاگ های خود را با استفاده از فایل صادراتی بلاگر صادر و وارد کنند. این فایل صادراتی شامل تمام پست ها و نظرات یک وبلاگ است. فرمت فایل صادراتی دقیقاً همان فرمت Atom است که در بخش های بازیابی پست ها و نظرات توضیح داده شده است. این فایل صادراتی حاوی محتویات فید پست و محتویات فید نظرات است که در یک سند ترکیب شده اند.

برای صادر کردن یا وارد کردن داده‌های وبلاگ با استفاده از فرمت صادرات، می‌توانید از صفحه تنظیمات وبلاگ دیدن کنید. برای بازیابی فایل صادراتی برای وبلاگ با استفاده از Data API، از URL زیر استفاده کنید:

GET http://www.blogger.com/feeds/blogID/archive

برای وارد کردن فایل صادراتی، یک درخواست POST به آدرس زیر با محتوای فایل صادراتی به عنوان داده درخواست و application/atom+xml به عنوان نوع محتوا ایجاد کنید:

POST http://www.blogger.com/feeds/blogID/archive/full

هیچ یک از نشانی‌های وب برای پارامترهای پرس و جو پشتیبانی نمی‌کنند. هر دو درخواست همچنین باید حاوی اطلاعات احراز هویت باشند و فقط مدیران وبلاگ می‌توانند وبلاگ را با استفاده از این نشانی‌های اینترنتی فید وارد یا صادر کنند.

توجه : اگر در حال ایجاد فایل صادراتی بلاگر خود هستید، در حال حاضر یک محدودیت در مورد ترتیب پست و ورودی های نظر وجود دارد. فایل صادراتی بلاگر ابتدا همه پست‌ها و سپس همه نظرات را فهرست می‌کند. تا زمانی که ورودی نظر بعد از پستی باشد که نظر برای آن است، درج کردن پست و نظر مجاز است.

برای اطلاعات بیشتر درباره نحوه استفاده Blogger از قالب Atom در فایل صادراتی، به راهنمای مرجع پروتکل مراجعه کنید.

بازگشت به بالا