دليل مطوّري البرامج: البروتوكول

تتيح واجهة برمجة التطبيقات Blogger Data API لتطبيقات العملاء عرض محتوى Blogger وتحديثه على شكل خلاصات Google Data API.

يمكن أن يستخدم تطبيق العميل واجهة برمجة التطبيقات Blogger Blogger لإنشاء مشاركات مدونة جديدة، وتعديل مشاركات المدونة الحالية أو حذفها، وإجراء طلب بحث عن مشاركات المدونة التي تطابق معايير معينة.

بالإضافة إلى تقديم بعض المعلومات الأساسية حول إمكانات واجهة برمجة التطبيقات لخدمة Blogger Data، يقدّم هذا المستند أمثلة على التفاعلات الأساسية مع Data API باستخدام البيانات الأولية بتنسيق XML وHTTPS. بعد قراءة هذا المستند، يمكنك معرفة المزيد عن التفاعل مع واجهة برمجة التطبيقات باستخدام مكتبات العميل من خلال قراءة الأقسام المتعلقة بلغة البرمجة في دليل مطوّر البرامج هذا.

المحتويات

الجمهور

هذا المستند مخصّص للمبرمجين الذين يريدون كتابة تطبيقات عميل يمكنها التفاعل مع Blogger باستخدام XML وHTTPS.

يفترض هذا المستند أنك تفهم الأفكار العامة وراء بروتوكول Google Data APIs.

إذا كنت تستخدم نظام UNIX وتريد تجربة الأمثلة في هذا المستند بدون كتابة أي رمز، قد تفيدك برامج سطر أوامر UNIX على curl أو wget. لمزيد من المعلومات، يُرجى الاطّلاع على الصفحات اليدوية لهذه الأدوات.

للحصول على معلومات مرجعية في واجهة برمجة تطبيقات بيانات Blogger، يرجى الاطلاع على الدليل المرجعي للبروتوكول.

البدء

إنشاء حساب Blogger

ننصحك بالاشتراك في حساب Blogger لأغراض الاختبار. تستخدم خدمة Blogger حسابات Google، لذلك إذا كان لديك حساب Google، ستكون جاهزًا.

تفويض الطلبات

عندما يطلب تطبيقك بيانات مستخدمين غير علنية، يجب أن يتضمّن رمزًا مميزًا للتفويض. ويساعد الرمز المميز محرك البحث Google في التعرّف على تطبيقك.

لمحة عن بروتوكولات الموافقة على الطلبات

نوصي باستخدام OAuth 2.0 لتفويض الطلبات.

تتوافق واجهة برمجة تطبيقات GData API أيضًا مع خيارات التفويض القديمة، مثل OAuth 1.0 أو AuthSub أو ClientLogin، ولكن في معظم الحالات لا ننصح باستخدام هذه الخيارات الأخرى. إذا كان تطبيقك يستخدم هذه الخيارات، ننصحك بنقل البيانات إلى OAuth 2.0 إن أمكن.

إذا كان تطبيقك يتضمّن متطلبات تفويض غير عادية، مثل تسجيل الدخول في الوقت نفسه الذي تطلب فيه الوصول إلى البيانات (المختلط) أو التفويض على مستوى النطاق (2LO)، لا يمكنك في الوقت الحالي استخدام الرموز المميزة لـ OAuth 2.0. وفي مثل هذه الحالات، عليك استخدام رموز OAuth 1.0 المميزة بدلاً من ذلك.

تفويض الطلبات باستخدام OAuth 2.0

يجب أن يسمح المستخدم الذي تمت مصادقته بإجراء طلبات للوصول إلى واجهة برمجة تطبيقات GData API لبيانات المستخدم غير العلنية.

تختلف تفاصيل عملية التفويض أو "flow&" OAuth 2.0 إلى حد ما بناءً على نوع التطبيق الذي تكتبه. تسري العملية العامة التالية على جميع أنواع التطبيقات:

  1. عند إنشاء تطبيقك، عليك تسجيله لدى Google. وبعد ذلك، توفّر Google المعلومات التي ستحتاج إليها لاحقًا، مثل معرِّف العميل وسر العميل.
  2. عندما يحتاج تطبيقك إلى الوصول إلى بيانات المستخدم، يطلب من Google نطاقًا معيّنًا من الوصول.
  3. يعرض محرّك البحث Google مربّع حوار OAuth للمستخدم يطلب منه السماح لتطبيقك بطلب بعض بياناته.
  4. في حال موافقة المستخدم، تمنح Google تطبيقك رمز دخول قصير الأجل.
  5. يطلب التطبيق بيانات المستخدمين، مع إرفاق رمز الدخول بالطلب.
  6. إذا تبيّن لمحرّك بحث Google أنّ طلبك والرمز المميّز صالحان، يعرض البيانات المطلوبة.

وتتضمّن بعض المسارات خطوات إضافية، مثل استخدام إعادة تحميل الرموز المميّزة للحصول على رموز دخول جديدة. للحصول على معلومات تفصيلية عن التدفقات في أنواع مختلفة من التطبيقات، يُرجى الاطّلاع على وثائق OAuth 2.0 في Google.

في ما يلي معلومات حول نطاق OAuth 2.0 في واجهة برمجة تطبيقات GData API:

https://www.blogger.com/feeds/

لطلب الوصول باستخدام OAuth 2.0، يحتاج تطبيقك إلى معلومات النطاق، بالإضافة إلى المعلومات التي يوفّرها Google أثناء تسجيل التطبيق (مثل معرِّف العميل و/أو سر العميل).

ملاحظة: يمكن لمكتبات عملاء Google APIs معالجة بعض عملية التفويض نيابةً عنك. تتوفّر هذه الإحصاءات لمجموعة متنوعة من لغات البرمجة، ويمكنك مراجعة صفحة "المكتبات والعيّنات" للاطّلاع على مزيد من التفاصيل.

تحديد إصدار

يجب أن يحدّد كل طلب يتم إرساله باستخدام واجهة برمجة التطبيقات Data Blogger واجهة برمجة التطبيقات 2.

لتحديد رقم الإصدار، استخدم عنوان HTTP GData-Version:

GData-Version: 2

بدلاً من ذلك، إذا لم تتمكّن من ضبط عناوين HTTP، يمكنك تحديد v=2 كمَعلمة طلب بحث في عنوان URL. إلا أن عنوان HTTP مفضل قدر الإمكان.

ملاحظة: توفّر مكتبات العملاء عناوين الإصدار المناسبة تلقائيًا، لذا لا تستخدِم معلّمة طلب البحث v=2 عند استخدام مكتبة عميل.

استرداد قائمة المدونات

توفر واجهة برمجة التطبيقات لبيانات Blogger خلاصة تسرد المدونات لمستخدم محدد، وتُعرف هذه الخلاصة باسم "metafeed.&quot.

يمكنك إرسال HTTP GET إلى عنوان URL التالي لاسترداد قائمة المدونات:

https://www.blogger.com/feeds/profileID/blogs

عندما يكون رقم تعريف الملف الشخصي هو الرقم في عنوان URL لصفحة الملف الشخصي للمستخدم.

ملاحظة: يمكنك أيضًا استبدال default برقم تعريف المستخدم، الذي يُطلِع Blogger على عرض قائمة المدونات للمستخدم الذي تُرفق بيانات اعتماده مع الطلب.

وقد يظهر إدخال في الخلاصة الوصفية كما يلي:

<entry gd:etag='W/"D08FQn8-eip7ImA9WxZbFEw."'>
  <id>tag:blogger.com,1999:user-userNumber.blog-blogID</id>
  <published>2006-08-02T18:44:43.089-07:00</published>
  <updated>2008-04-17T00:03:33.152-07:00</updated>
  <title>Lizzy's Diary</title>
  <summary type='html'>Being the journal of Elizabeth Bennet</summary>
  <link rel='self' type='application/atom+xml'
    href='http://www.blogger.com/feeds/profileID/blogs/blogID' />
  <link rel='alternate' type='text/html'
    href='http://blogName.blogspot.com/' />
  <link rel='http://schemas.google.com/g/2005#feed'
    type='application/atom+xml'
    href='http://blogName.blogspot.com/feeds/posts/default' />
  <link rel='http://schemas.google.com/g/2005#post'
    type='application/atom+xml'
    href='http://www.blogger.com/feeds/blogID/posts/default' />
  ...
  <author>
    <name>Elizabeth Bennet</name>
    <uri>http://www.blogger.com/profile/profileID</uri>
    <email>noreply@blogger.com</email>
  </author>
</entry>

للحصول على معلومات عن معنى كل عنصر من هذه العناصر، راجِع مستند مرجع بروتوكولات واجهات برمجة التطبيقات في Google أو مواصفات Atom 1.0.

إذا تعذّر تنفيذ طلبك لسبب ما، قد تعرض خدمة Blogger رمز حالة مختلفًا. تتوفر أيضًا مزيد من المعلومات حول رموز حالة HTTP في مستند مرجع بروتوكول Google Data API.

إنشاء مشاركات

تتيح لك واجهة برمجة التطبيقات لبيانات Blogger إنشاء إدخالات مدونات جديدة ونشرها، بالإضافة إلى إنشاء مسودات للإدخالات.

نشر مشاركة مدونة

وبعد المصادقة، يمكنك نشر إدخالات المدونات الجديدة.

أولاً، أنشئ تمثيل 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>

ملاحظة: لا يمكن حاليًا تحديد مؤلف مخصّص للمشاركات. ستظهر جميع المشاركات الجديدة كما لو كان قد تم إنشاؤها من قِبل المستخدم الذي تمت مصادقته حاليًا.

لنشر هذا الإدخال، أرسله إلى عنوان URL لمشاركة المدونة على النحو التالي. يجب أولاً وضع عنصر Atom <entry> في نص طلب POST جديد، باستخدام نوع المحتوى application/atom+xml. بعد ذلك، ابحث عن عنوان URL لمشاركة المدونة في الخلاصة الوصفية من خلال تحديد العنصر <link> حيث تنتهي السمة rel بالسمة #post. يتم تقديم عنوان URL لمشاركة المدوّنة بشكل سمة href لهذا العنصر، وهو بالتنسيق التالي:

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

ملاحظة: عنوان URL هذا هو نفسه عنوان URL في العلامة <link rel="service.post"> التي تظهر في القسم <head> من النسخة التي يمكن للمستخدمين قراءتها من المدونة.

تنشئ خدمة Blogger مشاركة مدونة باستخدام الإدخال الذي أرسلته، ثم تعرض رمز حالة HTTP 201 CREATED، بالإضافة إلى نسخة من المشاركة الجديدة على شكل عنصر <entry>. الإدخال المعروض هو نفسه الذي أرسلته، ولكنه يحتوي أيضًا على عناصر مختلفة تمت إضافتها بواسطة Blogger، مثل عنصر <id>.

إذا تعذّر تنفيذ طلبك لسبب ما، قد تعرض خدمة Blogger رمز حالة مختلفًا. للحصول على معلومات عن رموز الحالة، يُرجى الاطّلاع على المستند المرجعي لبروتوكول Google API.

إنشاء مسودة مشاركة مدونة

يتم إنشاء مسودات المشاركات بالطريقة نفسها التي يتم بها إنشاء المشاركات العلنية، ولكن مع إضافة عنصر <app:control> إلى الإدخال الذي يشير إلى أنّ المشاركة يجب عدم نشرها (بعد).

يجب أن يحتوي هذا العنصر <app:control> على عنصر <app:draft> واحد كعنصر فرعي:

<app:control xmlns:app='http://www.w3.org/2007/app'>
  <app:draft>yes</app:draft>
</app:control>

ويجب أن تكون البيانات المضمّنة في العنصر <app:draft> هي السلسلة yes حتى يتم التعرّف على المشاركة كمسودة.

يمكنك تحويل مسودة مشاركة مدونة حالية إلى مشاركة منشورة عن طريق استرداد مسودة المشاركة وإعداد بيانات العنصر <app:draft> على السلسلة no ثم تعديل المشاركة. يمكنك الاطّلاع على قسمَي استرداد المشاركات وتعديلها في القسمَين التاليَين.

ملاحظة: لمزيد من المعلومات حول بروتوكول النشر على Atom، بما في ذلك مساحتَي الاسم <app:control> و<app:draft>، يُرجى الاطّلاع على RFC 5023.

جارٍ استرداد المشاركات

توضّح الأقسام التالية كيفية استرداد قائمة بمشاركات المدوّنة مع معلَمات طلب البحث وبدونها.

يمكنك طلب البحث في خلاصة علنية على Blogger بدون مصادقة. لذلك، لست بحاجة إلى ضبط معلَمة التفويض عند استرداد مشاركات المدوّنة من مدونة علنية.

جارٍ استرداد جميع مشاركات المدونة

لاسترداد مشاركات المستخدم، أرسل طلب HTTP GET إلى عنوان URL لخلاصة المدونة. تعرض خدمة Blogger خلاصة تحتوي على إدخالات المدونة المناسبة. على سبيل المثال، للحصول على قائمة بمشاركات المدوّنة للعنوان liz@gmail.com، أرسِل طلب HTTP التالي إلى Blogger (باستخدام القيمة المناسبة بدلاً من blogID، بالطبع):

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

تعرض خدمة Blogger بعد ذلك رمز حالة HTTP 200 OK وخلاصة Atom 1.0 عادية تحتوي على مشاركات المدونات.

فيما يلي مثال على خلاصة لمدوّنة تتضمّن مشاركة واحدة فقط. لاحظ أنّنا قد عدّلنا هذا المثال قليلاً لجعله أكثر وضوحًا من خلال البشر. وعلى وجه الخصوص، تحتوي خلاصة Blogger حقيقية على معرّفات وعناوين URL فعلية.

<?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet href="http://www.blogger.com/styles/atom.css"
  type="text/css"?>
<feed xmlns='http://www.w3.org/2005/Atom'
    xmlns:gd='http://schemas.google.com/g/2005'
    gd:etag='W/"D08FQn8-eip7ImA9WxZbFEw."'>
  <id>tag:blogger.com,1999:blog-blogID</id>
  <updated>2008-04-17T00:03:33.152-07:00</updated>
  <title>Lizzy's Diary</title>
  <subtitle type='html'></subtitle>
  <link rel='http://schemas.google.com/g/2005#feed'
    type='application/atom+xml'
    href='http://blogName.blogspot.com/feeds/posts/default' />
  <link rel='self' type='application/atom+xml'
    href='http://www.blogger.com/feeds/blogID/posts/default' />
  <link rel='alternate' type='text/html'
    href='http://blogName.blogspot.com/' />
  <author>
    <name>Elizabeth Bennet</name>
    <uri>http://www.blogger.com/profile/profileID</uri>
    <email>noreply@blogger.com</email>
  </author>
  <generator version='7.00'
    uri='http://www2.blogger.com'>Blogger</generator>
  <entry gd:etag='W/"D0YHRn84eip7ImA9WxZUFk8."'>
    <id>tag:blogger.com,1999:blog-blogID.post-postID</id>
    <published>2008-04-07T20:25:00.005-07:00</published>
    <updated>2008-04-07T20:25:37.132-07:00</updated>
    <title>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='edit' type='application/atom+xml'
      href='http://www.blogger.com/feeds/blogID/posts/default/postID' />
    <link rel='self' type='application/atom+xml'
      href='http://www.blogger.com/feeds/blogID/posts/default/postID' />
    <link rel='alternate' type='text/html'
      href='http://blogName.blogspot.com/2008/04/quite-disagreeable.html' />
    <author>
      <name>Elizabeth Bennet</name>
      <uri>http://www.blogger.com/profile/profileID</uri>
      <email>noreply@blogger.com</email>
    </author>
  </entry>
</feed>

استرداد مشاركة مدونة مرة أخرى

إذا أردت استرداد مشاركة كنت قد استرددتها من قبل، يمكنك تحسين الكفاءة من خلال إبلاغ Blogger بإرسال المشاركة فقط إذا تم تغييرها منذ آخر مرة تم استردادها.

ولإجراء هذا النوع من الاسترداد المشروط، أرسِل طلب HTTP GET يتضمن عنوان HTTP If-None-Match. في العنوان، حدِّد الإدخال Etag، الذي يمكنك العثور عليه في سمة gd:etag <entry>.

مثلاً:

If-None-Match: W/"D08FQn8-eil7ImA9WxZbFEw."

عندما تتلقّى Blogger هذا الطلب، يتم التحقّق ممّا إذا كان الإدخال الذي طلبته يتضمّن العلامة ETag نفسها التي حدّدتها. وفي حال تطابُق علامات ETAG، لم يتم تغيير الإدخال، وعرض Blogger رمز حالة HTTP 304 Not Modified.

وفي حال عدم تطابق "العلامات الإلكترونية"، يتم تعديل الإدخال منذ آخر مرة طلبت ذلك، ويعرض Blogger الإدخال.

ولمزيد من المعلومات حول ETag، راجِع الدليل المرجعي لواجهات برمجة التطبيقات للبيانات في Google.

استرداد المشاركات باستخدام معلمات طلب البحث

تتيح لك واجهة برمجة التطبيقات لبيانات Blogger طلب مجموعة من الإدخالات التي تطابق معايير محددة، مثل طلب مشاركات المدونات التي تم نشرها أو تعديلها في نطاق زمني محدد.

على سبيل المثال، لإرسال طلب بحث للنطاق الزمني، أضِف المعلّمتَين published-min وpublished-max إلى عنوان URL للطلب. للحصول على جميع إدخالات المدونة التي تم إنشاؤها بين 16 آذار (مارس) 2008 و24 آذار (مارس) 2008، أرسل طلب HTTP إلى عنوان URL لخلاصة المدونة:

GET https://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 لبيانات واجهة برمجة التطبيقات طلبات البحث التالية:

alt
نوع الخلاصة المطلوب عرضها، مثل atom (التلقائي) أو rss
/category
يحدد الفئات (المعروفة أيضًا باسم التصنيفات) لفلترة نتائج الخلاصة. على سبيل المثال، تعرض https://www.blogger.com/feeds/blogID/posts/default/-/Fritz/Laurie الإدخالات ذات التصنيفين Fritz وLaurie.
الحد الأقصى للنتائج
الحد الأقصى لعدد الإدخالات التي يمكن عرضها.
orderby
ترتيب عرض الإدخالات، مثل lastmodified (الإعداد التلقائي) أو starttime أو updated.
تم النشر، الحد الأدنى، النشر-الحد الأقصى
الحد الأقصى للتواريخ المسموح بها لنشر المشاركات
فهرس البدء
الفهرس المستند إلى نتيجة واحدة للنتيجة الأولى التي سيتم استردادها (للنقل).
مُحدَّثة، الحد الأدنى، الحديثة
الحدّ الأقصى المسموح به لتواريخ تعديل الإدخال. ويتم تجاهل معلَمات طلب البحث هذه ما لم يتم ضبط المعلَمة orderby على updated.
المسار
المسار الثابت للمشاركة على سبيل المثال، بالنسبة إلى مشاركة تحتوي على عنوان URL http:// Buzz.blogger.com/2011/08/bloggers-fresh-new-Look.html، يكون المسار الثابت هو /2011/08/bloggers-fresh-new-look.html.
q
سلسلة طلب البحث كاملة. ويتيح لك ذلك البحث في المدونة عن المشاركات التي تطابق طلب البحث.

للحصول على مزيد من المعلومات عن معلَمات طلب البحث، يُرجى الاطّلاع على الدليل المرجعي لواجهة برمجة تطبيقات البيانات في Blogger والدليل المرجعي لواجهات برمجة التطبيقات للبيانات في Google.

جارٍ تعديل المشاركات

لتعديل مشاركة مدونة حالية، يجب أولاً استرداد الإدخال الذي تريد تعديله، ثم تعديله ثم إرسال طلب PUT، مع إدخال الإدخال المعدّل في نص الرسالة إلى عنوان URL للتعديل. تأكَّد من أن القيمة <id> في الإدخال PUT تتطابق تمامًا مع <id> للإدخال الحالي.

يتم تمييز عنوان URL للتعديل في الإدخال التالي:

<entry gd:etag='W/"CUYDSXo8fSp7ImA9WB9UFkU."'>
  <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>

لنشر هذا التعليق، يمكنك وضع عنصر Atom <entry> في نص طلب POST جديد، باستخدام نوع المحتوى application/atom+xml. بعد ذلك، أرسِل طلب POST إلى عنوان URL المناسب على Blogger:

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

ملاحظة: لا يمكنك حاليًا نشر التعليقات إلا على مدونة يملكها المستخدم الذي تمت المصادقة عليه.

ملاحظة: لا يمكن حاليًا ضبط مؤلف مخصّص للتعليقات. ستظهر كل التعليقات الجديدة كما لو أن المستخدم الذي أنشأها مُصادق عليه حاليًا.

جارٍ استرداد التعليقات

يمكنك استرداد التعليقات لمشاركة معينة عن طريق إرسال GET إلى عنوان URL لخلاصة التعليقات في هذه المشاركة:

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

أو يمكنك الحصول على التعليقات من جميع المشاركات باستخدام عنوان URL لخلاصة المدوّنة:

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

تعرض هذه الطلبات خلاصة تعليقات تبدو كما يلي:

<?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet href="http://www.blogger.com/styles/atom.css"
  type="text/css"?>
<feed xmlns='http://www.w3.org/2005/Atom'
    xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/'
    xmlns:gd='http://schemas.google.com/g/2005'
    gd:etag='W/"CUYMQ348fyp7ImA9WB9UFkU."'>
  <id>tag:blogger.com,1999:blog-blogID.postpostID..comments</id>
  <updated>2007-12-14T17:46:22.077-08:00</updated>
  <title>Comments on Lizzy's Diary: Quite disagreeable</title>
  <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://www.blogger.com/feeds/blogID/postID/comments/default' />
  <link rel='alternate' type='text/html'
    href='http://blogName.blogspot.com/2007/12/quite-disagreeable_5283.html' />
  <author>
    <name>Elizabeth Bennet</name>
    <uri>http://www.blogger.com/profile/profileID</uri>
    <email>noreply@blogger.com</email>
  </author>
  <generator version='7.00'
    uri='http://www.blogger.com'>Blogger</generator>
  <openSearch:totalResults>1</openSearch:totalResults>
  <openSearch:startIndex>1</openSearch:startIndex>
  <entry gd:etag='W/"CUYCQX47eSp7ImA9WB9UFkU."'>
    <id>tag:blogger.com,1999:blog-blogID.post-commentID</id>
    <published>2007-12-14T17:46:00.001-08:00</published>
    <updated>2007-12-14T17:46:00.001-08:00</updated>
    <title>Darcy FTW!</title>
    <content type='html'>Darcy FTW!</content>
    <link rel='edit' type='application/atom+xml'
      href='http://www.blogger.com/feeds/blogID/postID/comments/default/commentID' />
    <link rel='self' type='application/atom+xml'
      href='http://www.blogger.com/feeds/blogID/postID/comments/default/commentID' />
    <link rel='alternate' type='text/html'
      href='http://blogName.blogspot.com/2007/12/quite-disagreeable_5283.html?showComment=1197683160001#ccommentID'
      title='' />
    <author>
      <name>Elizabeth Bennet</name>
      <uri>http://www.blogger.com/profile/profileID</uri>
      <email>liz@gmail.com</email>
    </author>
    <thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0'
      href='http://blogName.blogspot.com/2007/12/quite-disagreeable_5283.html'
      ref='tag:blogger.com,1999:blog-blogID.post-postID'
      source='http://www.blogger.com/feeds/blogID/posts/default/postID'
      type='text/html' />
  </entry>
</feed>

جارٍ حذف التعليقات

لحذف تعليق، يمكنك إرسال طلب DELETE إلى عنوان URL لتعديل التعليق. تم تمييز عنوان URL هذا في خلاصة التعليقات أعلاه.

تنسيق التصدير

تتيح خدمة Blogger للمستخدمين تصدير مدوناتهم واستيرادها باستخدام ملف تصدير Blogger. يحتوي ملف التصدير هذا على كل المشاركات والتعليقات لمدونة واحدة. يكون تنسيق ملف التصدير هو تنسيق Atom نفسه الموضح في أقسام استرداد المشاركات والتعليقات. سيتضمّن ملف التصدير هذا محتوى خلاصة المشاركات ومحتوى خلاصات التعليقات مجتمعة في مستند واحد.

لتصدير بيانات المدونة أو استيرادها باستخدام تنسيق التصدير، يمكنك الانتقال إلى صفحة الإعدادات للمدونة. لاسترداد ملف التصدير لمدونة باستخدام واجهة برمجة التطبيقات للبيانات، استخدم عنوان URL التالي:

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

لاستيراد ملف التصدير، يمكنك إنشاء طلب POST إلى عنوان URL التالي يتضمن محتوى ملف التصدير باعتباره بيانات الطلب وapplication/atom+xml كنوع المحتوى:

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

لا تتوافق أي من عناوين URL مع معلَمات طلب البحث الواردة أعلاه. ويجب أن يحتوي كلا الطلبَين أيضًا على معلومات المصادقة، كما لن يتمكن سوى مشرفي المدونة من استيراد/تصدير المدونة باستخدام عناوين URL هذه للخلاصة.

ملاحظة: إذا كنت تنشئ ملف تصدير من Blogger، هناك حاليًا قيود واحدة حول ترتيب إدخالات المشاركات والتعليقات. سيُدرج ملف تصدير Blogger جميع المشاركات أولاً، ثم جميع التعليقات. يُسمح بإدخال المشاركات والتعليق طالما أن إدخال التعليق يأتي بعد نشر التعليق.

للحصول على مزيد من المعلومات عن كيفية استخدام Blogger لتنسيق Atom في ملف التصدير، يمكنك الاطّلاع على الدليل المرجعي للبروتوكول.

الرجوع إلى أعلى الصفحة