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

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

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

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

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

المحتويات

الجمهور

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

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

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

للحصول على معلومات مرجعية حول Blogger Data API، يُرجى الاطّلاع على دليل مرجعي حول البروتوكول.

الخطوات الأولى

إنشاء حساب على Blogger

ننصحك بإنشاء حساب على Blogger لأغراض الاختبار. يستخدم Blogger حسابات Google، لذا إذا كان لديك حساب على Google، لن تحتاج إلى إجراء أي إعدادات.

المصادقة على خدمة Blogger

يمكنك الوصول إلى الخلاصات العامة والخاصة باستخدام Blogger Data API. لا تتطلّب الخلاصات العامة أي مصادقة، ولكنها تكون للقراءة فقط. إذا أردت تعديل المدونات، يجب أن يُجري العميل مصادقة قبل طلب ملفّات الاطّلاع الخاصة. ويمكنه المصادقة باستخدام إحدى الطريقتَين التاليتَين: مصادقة الخادم الوكيل AuthSub أو مصادقة اسم المستخدم/كلمة المرور ClientLogin.

لمزيد من المعلومات عن المصادقة باستخدام Google Data APIs بشكل عام، يُرجى الاطّلاع على مستندات مصادقة.

تستند معظم العيّنات في الأقسام اللاحقة من هذا المستند إلى أنّك تقدّم المصادقة المناسبة.

مصادقة الخادم الوكيل لبروتوكول AuthSub

تستخدِم تطبيقات الويب المصادقة الوكيلة عبر AuthSub التي تحتاج إلى مصادقة المستخدمين على حسابات Google. لا يمكن لمشغّل الموقع الإلكتروني ورمز العميل الوصول إلى اسم مستخدم Blogger وكلمة مروره، وبدلاً من ذلك، يحصل العميل على رموز AuthSub خاصة تسمح له بالتصرّف نيابةً عن مستخدم معيّن. للحصول على معلومات أكثر تفصيلاً، يُرجى الاطّلاع على مستندات AuthSub.

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

يتم تضمين مَعلمات طلب البحث التالية في عنوان URL الخاص بطلب AuthSubRequest:

التالي
عنوان URL للصفحة التي من المفترض أن تعيد Google توجيه المستخدم إليها بعد المصادقة
نطاق
يشير إلى أنّ التطبيق يطلب رمز مرور للوصول إلى خلاصات Blogger. سلسلة النطاق التي يجب استخدامها هي http://www.blogger.com/feeds/ (بالطبع، تكون مُشفَّرة باستخدام عنوان URL).
آمن
يشير إلى ما إذا كان العميل يطلب رمزًا مميّزًا آمنًا.
جلسة
يشير إلى ما إذا كان يمكن استبدال الرمز المميّز الذي تم إرجاعه برمز مميّز متعدّد الاستخدام (للجلسة).

قد يبدو عنوان URL لطلب AuthSub على النحو التالي:

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 توجيهه إلى عنوان URL الذي حدّدته في مَعلمة طلب البحث next لعنوان URL AuthSubRequest. يُلحق نظام AuthSub رمزًا مميّزًا للمصادقة بهذا العنوان، وذلك بصفته قيمة مَعلمة طلب البحث token. على سبيل المثال:

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 للتفاعلات اللاحقة مع Blogger.

في ما يلي مثال على طلب 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 طلبًا إلى عنوان URL التالي:

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

يجب أن يحتوي نص POST على مجموعة من مَعلمات طلبات البحث التي تبدو مثل المَعلمات التي تم تمريرها من خلال نموذج HTML، باستخدام نوع المحتوى application/x-www-form-urlencoded. هذه المَعلمات هي:

البريد الإلكتروني
عنوان البريد الإلكتروني للمستخدم
Passwd
كلمة مرور المستخدم
الخدمة
اسم خدمة Blogger هو blogger. (للاطّلاع على أسماء الخدمات الأخرى، اطّلِع على قائمة أسماء الخدمات).
accountType
يجب ضبط هذه القيمة دائمًا على GOOGLE عند استخدام Blogger API. سيؤدي عدم ضبط هذه المَعلمة إلى منع وصول المستخدمين الذين لديهم أيضًا حساب على G Suite.
المصدر
يُحدِّد تطبيق العميل. يجب أن يكون على الشكل companyName-applicationName-versionID. تستخدِم الأمثلة الاسم exampleCo-exampleApp-1.

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

إذا تعذّر طلب المصادقة، يعرض الخادم رمز حالة HTTP 403 Forbidden.

إذا نجحت العملية، يعرض الخادم رمز حالة HTTP200 OK بالإضافة إلى ثلاثة رموز أبجدية رقمية طويلة في نص الاستجابة: SID وLSID وAuth. قيمة Auth هي رمز التفويض الذي سترسله إلى Blogger مع كل طلب لاحق، لذا احتفظ بنسخة من هذه القيمة. يمكنك تجاهل قيم SID وLSID.

بما أنّ جميع الطلبات الموجّهة إلى الخلاصات الخاصة تتطلّب المصادقة، عليك ضبط عنوان Authorization في جميع التفاعلات اللاحقة مع Blogger باستخدام التنسيق التالي:

Authorization: GoogleLogin auth=yourAuthToken

حيث يمثّل yourAuthToken سلسلة المصادقة التي يعرضها طلب ClientLogin.

لمزيد من المعلومات عن مصادقة ClientLogin، بما في ذلك نماذج طلبات واستجابات، يُرجى الاطّلاع على مستندات المصادقة للتطبيقات المثبّتة.

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

ملاحظة: كما هو موضّح في مستندات ClientLogin ، قد يتعذّر إكمال طلب المصادقة ويُطلب منك حلّ اختبار CAPTCHA. إذا كنت تريد أن تطلب Google من المستخدمين إكمال اختبار CAPTCHA وتعالجه، عليك إرسال المستخدم إلى https://www.google.com/accounts/DisplayUnlockCaptcha?service=blogger (بدلاً من عنوان URL المخصّص لمعالجة اختبار CAPTCHA الوارد في مستندات ClientLogin ).

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

توفّر Blogger Data API خلاصة تسرد المدونات الخاصة بمستخدم معيّن، وتُعرف هذه الخلاصة باسم "الخلاصة الوصفية".

أرسِل طلب HTTP GET إلى عنوان URL التالي لاسترداد قائمة المدوّنات:

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.

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

تتيح لك 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>

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

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

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

ملاحظة: عنوان URL هذا هو نفسه عنوان 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> نشر Atom، بما في ذلك مساحتَي الاسم <app:control> و<app:draft>، يُرجى الاطّلاع على RFC 5023.

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

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

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

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

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

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

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

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

<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 إلى عنوان URL الخاص بخلاصة المدونة:

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.
max-results
الحد الأقصى لعدد الإدخالات التي سيتم عرضها
orderby
الترتيب الذي يتم به عرض الإدخالات، مثل lastmodified (الترتيب التلقائي) أو starttime أو updated
published-min وpublished-max
الحدّ الأدنى والأعلى لتاريخ نشر الإدخال
start-index
فهرس يستند إلى 1 للنتيجة الأولى التي سيتم استرجاعها (لصفحة البيانات).
updated-min وupdated-max
الحدّ الأقصى لتواريخ تعديل الإدخالات يتم تجاهل مَعلمات طلب البحث هذه ما لم يتم ضبط المَعلمة orderby على updated.

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

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

لتعديل مشاركة مدوّنة حالية، عليك أولاً استرداد الإدخال الذي تريد تعديله، ثم تعديله، ثم إرسال طلب 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 المناسب في Blogger:

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

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

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

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

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

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 هذا في خلاصة التعليقات أعلاه.

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

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

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

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

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

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

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

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

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

الرجوع إلى الأعلى