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

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

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

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

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

المحتويات

الجمهور

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

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

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

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

البدء

إنشاء حساب Blogger

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

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

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

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

تفترض معظم النماذج في الأقسام اللاحقة من هذا المستند أنك تعرض المصادقة المناسبة.

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

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

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

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

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

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

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

تمثّل قيمة الرمز المميّز هذا رمزًا مميّزًا للاستخدام لمرة واحدة. في هذا المثال، بما أنّه تم تحديد session=1، يمكن استبدال هذا الرمز المميّز برمز مميّز لجلسة المصادقة الفرعية من خلال استدعاء الخدمة AuthSubSessionToken برمز مميّز لمرة واحدة في عنوان التفويض، كما يلي:

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 إذا كان البرنامج عميلاً مستقلاً لمستخدم واحد "installed;quot;; (مثل تطبيق سطح مكتب). لطلب رمز مميّز للمصادقة باستخدام آلية ClientLogin، أرسِل طلب POST إلى عنوان URL التالي:

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

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

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

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

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

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

بما أنّ كل الطلبات المتعلّقة بالخلاصات الخاصة تتطلّب مصادقة، يجب ضبط عنوان التفويض في كل التفاعلات اللاحقة مع 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 خلاصة تسرد المدونات لمستخدم محدد، وتُعرف هذه الخلاصة باسم "metafeed.&quot.

أرسِل 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 أو مواصفات 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 لهذا العنصر، وهو بالتنسيق التالي:

http://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://purl.org/atom/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 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 طلب مجموعة من الإدخالات التي تطابق معايير محددة، مثل طلب مشاركات المدونات التي تم نشرها أو تعديلها في نطاق زمني محدد.

على سبيل المثال، لإرسال طلب بحث للنطاق الزمني، أضِف المعلّمتَين 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 لبيانات واجهة برمجة التطبيقات طلبات البحث التالية:

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

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

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

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

لنشر هذا التعليق، يمكنك وضع عنصر Atom <entry> في نص طلب 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 نفسه الموضح في أقسام استرداد المشاركات والتعليقات. سيتضمّن ملف التصدير هذا محتوى خلاصة المشاركات ومحتوى خلاصات التعليقات مجتمعة في مستند واحد.

لتصدير بيانات المدونة أو استيرادها باستخدام تنسيق التصدير، يمكنك الانتقال إلى صفحة الإعدادات للمدونة. لاسترداد ملف التصدير لمدونة باستخدام واجهة برمجة التطبيقات للبيانات، استخدم عنوان 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 في ملف التصدير، يمكنك الاطّلاع على الدليل المرجعي للبروتوكول.

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