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

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

تسمح واجهة برمجة التطبيقات لبيانات Blogger لتطبيقات العميل بعرض محتوى 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 لـ 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

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

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

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

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

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

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

إذا نجح الأمر، سيعرض الخادم رمز حالة 200 OK لبروتوكول HTTP، بالإضافة إلى ثلاثة رموز أبجدية رقمية طويلة في نص الاستجابة وهي: 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 Data API خلاصة تعرض المدونات لمستخدم معين، وتُعرف هذه الخلاصة باسم "خلاصة وصفية".

إرسال GET HTTP إلى عنوان 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 Data API.

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

تسمح لك 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، ثم تعديل المشاركة. يتم تناول استرداد المشاركات وتحديثها في القسمين التاليين.

ملاحظة: لمزيد من المعلومات حول بروتوكول نشر 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 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 استخدام معلَمات طلب البحث التالية:

alt
نوع الخلاصة المطلوب عرضها، مثل atom (الخلاصة التلقائية) أو rss.
/category
يحدد هذا الإعداد الفئات (المعروفة أيضًا باسم التصنيفات) لفلترة نتائج الخلاصة. على سبيل المثال، تعرض الدالة http://www.blogger.com/feeds/blogID/posts/default/-/Fritz/Laurie إدخالات بكل من التصنيفين Fritz وLaurie.
max-results
الحد الأقصى لعدد الإدخالات المطلوب عرضها.
ترتيب
الترتيب الذي يتم به عرض الإدخالات، مثل lastmodified (الخيار التلقائي) أو starttime أو updated.
منشور - دقيقة - الحد الأقصى المنشور
حدود تواريخ نشر المشاركات:
start-index
الفهرس المستند إلى 1 لأول نتيجة يتم استردادها (لتقسيم الصفحة إلى صفحات).
محدث-الحد الأقصى-الحد الأقصى-المحدَّث
الحدود المفروضة على تواريخ تعديل الإدخالات. ويتم تجاهل مَعلمات طلب البحث هذه ما لم يتم ضبط المَعلمة 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 بإنشاء التعليقات واستردادها وحذفها. تحديث التعليقات غير معتمد (ولا يتوفر كذلك في واجهة الويب).

إنشاء التعليقات

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

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

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