دليل المطوّر: PHP

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

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

بالإضافة إلى تقديم بعض المعلومات الأساسية حول إمكانات واجهة برمجة التطبيقات Blogger Data API، يقدّم هذا المستند أمثلة على التفاعلات الأساسية لواجهة برمجة التطبيقات Data API باستخدام مكتبة عملاء Zend Google Data APIs. إذا كنت مهتمًا بمعرفة المزيد من المعلومات حولprotocol الأساسي الذي تستخدمه المكتبة، يُرجى الاطّلاع على قسم البروتوكول في دليل المطوّر هذا.

المحتويات

الجمهور

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

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

للحصول على معلومات مرجعية عن الفئات والأساليب التي تقدّمها مكتبة العميل، اطّلِع على مرجع واجهة برمجة التطبيقات لمكتبة العميل في PHP. للحصول على معلومات عامة حول مرجع Blogger Data API، يُرجى الاطّلاع على دليل مرجع البروتوكول.

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

للحصول على مساعدة في إعداد مكتبة العميل، يُرجى الاطّلاع على دليل البدء.

تتطلّب مكتبة عملاء Zend استخدام الإصدار 5.1.4 من PHP أو إصدار أحدث. وهو متوفّر كجزء من إطار عمل Zend وكملف تنزيل منفصل أيضًا. للتفاعل مع Blogger، استخدِم الإصدار 1.0.0 أو إصدارًا أحدث من مكتبة العميل.

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

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

تشغيل نموذج الرمز

يتوفّر نموذج عميل كامل يعمل بشكل صحيح، يحتوي على جميع نماذج الرموز البرمجية المعروضة في هذا المستند، في مستودع SVN لإطار عمل Zend. يمكن العثور على العيّنة على الرابط /framework/standard/trunk/demos/Zend/Gdata/Blogger.php. يحتوي العيّنة على جميع الدوالّ الموضّحة في هذا المستند. يمكن تشغيله من سطر الأوامر فقط:

php Blogger.php -- --user=[email_address] --pass=[password]

قبل تشغيل هذا العيّنة أو تطوير رمزك البرمجي باستخدام إطار عمل Zend ، قد تحتاج إلى ضبط include_path وتحميل الklassen المناسبة. يمكن ضبط مسار التضمين إما باستخدام إعداد php.ini أو باستخدام الطريقة set_include_path. يطلب هذا الرمز البرمجي الوصول إلى فئة Zend_Gdata الأساسية، وفئة Zend_Gdata_Query، وفئة المصادقة Zend_Gdata_ClientLogin.

require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata');
Zend_Loader::loadClass('Zend_Gdata_Query');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');

استخدام وظائف الحصول على القيم وضبطها السحرية

تمّت إضافة مُعدِّلات/مُستخدِمات سحرية في مكتبة العميل في PHP لتسهيل عمل المطوّرين. تسمح هذه الطرق بالوصول بأمان إلى سمات الفئة باستخدام طرق الإعداد/الحصول التقليدية أو من خلال الوصول إلى السمات. على سبيل المثال، إذا كان $gdataObject هو مثيل لعنصر في هذه المكتبة، سيكون لسطرَي الرمز البرمجي التاليَين أثران متطابقان:

$gdataObject->setFoo("bar");
$gdataObject->foo = "bar";

وبالمثل، يُحدث سطرَا التعليمة البرمجية هذان تأثيرَين متطابقَين أيضًا:

$baz = $gdataObject->getFoo();
$baz = $gdataObject->foo;

وبالمثل، تسهِّل طرق المصنع السحرية عملية الإعلان عن كائنات جديدة. بدلاً من تذكُّر أسماء الفئات الطويلة التي يفرضها نمط تسمية Zend، يمكنك إنشاء object جديد من خلال استدعاء newObject(); في عميل خدمة Zend. على سبيل المثال، يُعرِض المقتطفان التاليان عنصرًا جديدًا لإضافة draft. يمكنك الاطّلاع على مزيد من المعلومات حول drafts في قسم إنشاء مشاركة.

// Traditional instantiation
$gdClient = new Zend_Gdata();
$draft = new Zend_Gdata_App_Extension_Draft();

// Magic factory instantiation
$gdClient = new Zend_Gdata();
$draft = $gdClient->newDraft();

إنّ وظائف الضبط/الحصول السحرية والمصانع اختيارية، لذا استخدِم أيًا مما يلي من الأساليب يناسبك بشكل أفضل.

مراجع أخرى

مراجع أخرى لمكوّن Google Data APIs في Zend Framework‏ (Zend_Gdata):

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

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

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

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

مصادقة OAuth

للحصول على مستندات حول مصادقة OAuth باستخدام مكتبة GData Zend PHP، يُرجى الاطّلاع على OAuth في مكتبات برمجة تطبيقات Google Data Protocol العميلة.

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

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

عندما يزور مستخدم تطبيقك لأول مرة، لا يكون قد تم مصادقته بعد. في هذه الحالة، عليك عرض بعض المعلومات ورابط يؤدي إلى توجيه المستخدم إلى صفحة على Google لمصادقة طلبك للوصول إلى مدوّناته. توفّر مكتبة برامج Zend Client Library وظيفة لإنشاء عنوان URL لصفحة Google. يسترجع الرمز أدناه عنوان URL لصفحة AuthSubRequest:

function getAuthSubUrl()
{
  $next = getCurrentUrl();
  $scope = 'http://www.google.com/blogger/feeds/';
  $secure = false;
  $session = true;
  return Zend_Gdata_AuthSub::getAuthSubTokenUri($next, $scope, $secure, $session);
}

$authSubUrl = getAuthSubUrl();
echo '<a href=\"$authSubUrl\">login to your Google account</a>';

تأخذ الطريقة getAuthSubTokenUri المَعلمات التالية (المتوافقة مع مَعلمات طلب البحث المستخدَمة من قِبل معالِج AuthSubRequest):

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

يعرض المثال أعلاه طلبًا لا يطلب رمز مميّزًا آمنًا (قيمةsecure هيfalse). قد يشبه عنوان URL الناتج للطلب ما يلي:

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.php

يتّبع المستخدم الرابط المؤدي إلى موقع Google الإلكتروني ويُثبِّت هويته في حسابه على Google.

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

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

يمكنك استرداد قيمة الرمز المميّز باستخدام $_GET['token'].

تمثّل قيمة الرمز المميّز هذا رمزًا مميزًا لبروتوكول AuthSub صالحًا لمرة واحدة. في هذا المثال، بما أنّه تم تحديد $session = true، يمكن استبدال هذا الرمز المميّز برمز مميز لجلسة AuthSub باستخدام الطريقة Zend_Gdata_AuthSub::getAuthSubSessionToken التي تستدعي خدمة AuthSubSessionToken:

if(! isset($_SESSION['sessionToken']) && isset($_GET['token'])) {
  $_SESSION['sessionToken'] =
      Zend_Gdata_AuthSub::getAuthSubSessionToken($_GET['token']);
}

تتحقّق المقتطفة البرمجية أولاً مما إذا كان رمز مميّز لجلسة AuthSub متوفّرًا. وإذا لم يكن الأمر كذلك، ولكن تم تحديد رمز مميّز صالح لمرة واحدة في عنوان URL، يُرسِل مقتطف الرمز المميّز الرمز المميّز لمرة واحدة إلى getAuthSubSessionToken، وتُعرِض واجهة AuthSub رمزًا مميّزًا للجلسة. بعد ذلك، يضع الرمز البرمجي قيمة رمز الجلسة في متغيّر الجلسة $_SESSION['sessionToken'].

يمكن لتطبيقك بعد ذلك استخدام قيمة رمز الجلسة في التفاعلات التالية مع Blogger. يمكنك استخدام الأسلوب Zend_Gdata_AuthSub::getHttpClient للحصول على عنصر Zend_Http_Client يحتوي على الإعداد المُسبَق للرأس Authorization لتضمين بيانات اعتماد AuthSub:

$client = Zend_Gdata_AuthSub::getHttpClient($_SESSION['sessionToken']);

مصادقة اسم المستخدم/كلمة المرور في ClientLogin

استخدِم مصادقة ClientLogin إذا كان برنامجك هو برنامج مستقل ومُثبَّت لمستخدم واحد (مثل تطبيق مخصّص لأجهزة الكمبيوتر المكتبي).

يستخدم الرمز البرمجي التالي الطريقة Zend_Gdata_ClientLogin::getHttpClient لإرسال طلب إلى خدمة ClientLogin واسترداد رمز مميّز للمصادقة وإنشاء عنصر Zend_Http_Client يتضمّن عنوان المصادقة المناسب. بعد ذلك، يتم استخدام القيمة HttpClient التي تعرضها هذه الطريقة لإنشاء كائن الخدمة Zend_Gdata.

يُرجى ملاحظة أنّه تم ضبط $accountType على GOOGLE بشكل صريح. سيؤدي عدم ضبط هذه المَعلمة إلى منع مستخدمي G Suite من استخدام واجهة برمجة التطبيقات Blogger API بنجاح.

$user = 'user@example.com';
$pass = 'secretPasswd';
$service = 'blogger';

$client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service, null,
        Zend_Gdata_ClientLogin::DEFAULT_SOURCE, null, null,
        Zend_Gdata_ClientLogin::CLIENTLOGIN_URI, 'GOOGLE');
$gdClient = new Zend_Gdata($client);

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

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

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

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

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

يستخدم نموذج الرمز البرمجي التالي عنصر $gdClient تم مصادقةه لاسترداد الخلاصة الوصفية ثم يطبع عنوان كل مدونة.

تتولّى فئة Zend_Gdata_Query إنشاء عنوان URL لطلب البحث. في هذه الحالة، ليس عليك تنفيذ أي عمل إضافي، ولكن ستتضح فائدة فئة Query في قسم استرداد المشاركات حسب مَعلمات الطلب في هذا المستند.

function printAllBlogs()
{
  $query = new Zend_Gdata_Query('http://www.blogger.com/feeds/default/blogs');
  $feed = $gdClient->getFeed($query);
  printFeed($feed);
}

function printFeed($feed)
{
  $i = 0;
  foreach($feed->entries as $entry) {
    print $i ." ". $entry->title->text . "\n";
    $i++;
  }
}

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

يوضّح مقتطف الرمز البرمجي أدناه كيفية استخراج معرّف مدوّنة من السلسلة. ستحتاج إلى معرّف المدوّنة لإجراء عمليات الإنشاء والتعديل والحذف على المشاركات والتعليقات. يمثّل المتغيّر $index مدوّنة المستخدم التي يتم استخدامها في خلاصة مدونته. يأخذ الحقل id الشكل tag:blogger.com,1999:user-userID.blog-blogID، لذا فإنّ الحرف split على الحرف "-" يضع معرّف المدوّنة في العنصر الأخير من الصفيف الناتج.

$idText = split('-', $feed->entries[$index]->id->text);
$blogID = $idText[2];

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

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

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

نشر مشاركة في مدوّنة

يمكنك استخدام مكتبة عملاء PHP لنشر إدخالات مدوّنة جديدة.

أولاً، أنشئ مثيل إدخال لتمثيل مشاركة المدونة. يمكنك بعد ذلك ضبط العنوان والمحتوى والسمات الأخرى للمقالة في المدوّنة. أخيرًا، استدِع الطريقة insertEntry لإدراج المشاركة. يمكنك الاطّلاع على عمليات إنشاء العناصر السحرية في المصنع هنا باستخدام العناصر الجديدة Zend_Gdata_Entry وZend_Gdata_App_Extension_Title وZend_Gdata_App_Extension_Content.

function createPublishedPost($title='Hello, world!', $content='I am blogging on the internet.')
{
  $uri = 'http://www.blogger.com/feeds/' . $blogID . '/posts/default';
  $entry = $gdClient->newEntry();
  $entry->title = $gdClient->newTitle($title);
  $entry->content = $gdClient->newContent($content);
  $entry->content->setType('text');

  $createdPost = $gdClient->insertEntry($entry, $uri);
  $idText = split('-', $createdPost->id->text);
  $newPostID = $idText[2];

  return $newPostID;
}

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

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

function createDraftPost($title='Salutations, world!', $content='Hmm ... not quite right, must rework the title later.')
{
  $uri = 'http://www.blogger.com/feeds/' . $blogID . '/posts/default';
  $entry = $gdClient->newEntry();

  $entry->title = $gdClient->newTitle(trim($title));
  $entry->content = $gdClient->newContent($content);
  $entry->content->setType('text');

  $control = $gdClient->newControl();
  $draft = $gdClient->newDraft('yes');
  $control->setDraft($draft);
  $entry->control = $control;

  $createdPost = $gdClient->insertEntry($entry, $uri);
  $idText = split('-', $createdPost->id->text);
  return $idText[2];
}

بالطريقة نفسها التي يتم بها ضبط عنوان أو محتوى مشاركة، يمكنك إنشاء عناصر Zend_Gdata_App_Extension_Control وZend_Gdata_App_Extension_Draft جديدة وتخصيصها لسمة التحكّم في الإدخال.

يمكنك تحويل مسودة حالية لمشاركة مدونة إلى مشاركة منشورة من خلال استرداد مسودة المشاركة وضبط سمة المسودة على no، ثم تعديل المشاركة. سنتناول استرداد المشاركات وتعديلها في القسمَين التاليَين.

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

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

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

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

لاسترداد مشاركات المستخدم، استخدِم طريقة getFeed نفسها المستخدَمة لاسترداد خلاصة الميتا للمدوّنات، ولكن أرسِل هذه المرة عنوان URL لخلاصة المشاركات في المدوّنة:

function printAllPosts($gdClient, $blogID)
{
  $query = new Zend_Gdata_Query('http://www.blogger.com/feeds/' . $blogID . '/posts/default');
  $feed = $gdClient->getFeed($query);
  printFeed($feed);
}

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

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

على سبيل المثال، لإرسال طلب بحث حسب النطاق الزمني، اضبط المَعلمتَين published-min وpublished-max لكائن طلب البحث. يطبع مقتطف الرمز التالي عنوان كل مشاركة مدونة منشورة بين وقت البدء ووقت الانتهاء المحدَّدَين:

function printPostsInDateRange($gdClient, $blogID, $startDate='2007-04-01', $endDate='2007-04-25')
{
  $query = new Zend_Gdata_Query('http://www.blogger.com/feeds/' . $blogID . '/posts/default');
  $query->setParam('published-min', $startDate);
  $query->setParam('published-max', $endDate);

  $feed = $gdClient->getFeed($query);
  printFeed($feed);
}

من الطرق المفيدة لتصحيح أخطاء فئة Zend_Gdata_Query هي getQueryUrl()، التي ستعرِض لك عنوان URL المشفَّر الذي تم إنشاؤه.

ملاحظة: لا تتوفّر حاليًا أدوات ضبط سحرية لملفّات published-min وpublished-max. ومع ذلك، يمكنك استخدام setStartIndex و setMaxResults.

تتيح Blogger Data API مَعلمات طلب البحث التالية:

الفئات
تُستخدَم لتحديد الفئات (المعروفة أيضًا باسم التصنيفات) لفلترة نتائج الخلاصة. على سبيل المثال، يعرض http://www.blogger.com/feeds/blogID/posts/default/-/Fritz/Laurie الإدخالات التي تحتوي على الملصقين Fritz وLaurie.
max-results
الحد الأقصى لعدد الإدخالات التي سيتم عرضها
published-min وpublished-max
الحدّ الأدنى والأعلى لتاريخ نشر الإدخال
start-index
فهرس يستند إلى 1 للنتيجة الأولى التي سيتم استرجاعها (لصفحة البيانات).

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

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

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

public function updatePost($postID, $updatedTitle='Hello, World?',
                           $updatedContent='UPDATE: Still blogging',
                           $isDraft=False)
{
  $query = new Zend_Gdata_Query('http://www.blogger.com/feeds/' . $blogID . '/posts/default/' . $postID);
  $postToUpdate = $dClient->getEntry($query);
  $postToUpdate->title->text = $this->gdClient->newTitle($updatedTitle);
  $postToUpdate->content->text = $this->gdClient->newContent($updatedContent);

  if ($isDraft) {
    $draft = $gdClient->newDraft('yes');
  } else {
    $draft = $gdClient->newDraft('no');
  }

  $control = $gdClient->newControl();
  $control->setDraft($draft);
  $postToUpdate->control = $control;

  $updatedPost = $postToUpdate->save();
  return $updatedPost;
}

ملاحظة: لا يمكن حاليًا تعديل بيانات المؤلف المرتبطة بالمواد المتوفّرة في المشاركات.

حذف المشاركات

لحذف مشاركة، مرِّر عنوان URL لتعديل المشاركة إلى طريقة delete في عنصر $gdClient، على النحو التالي:

public function deletePost($gdClient, $blogID, $postID)
{
  $uri = 'http://www.blogger.com/feeds/' . $blogID . '/posts/default/' . $postID;
  $gdClient->delete($uri);
}

التعليقات

تتيح Blogger Data API إنشاء التعليقات واستردادها وحذفها. لا يمكن تعديل التعليقات (ولا تتوفّر هذه الميزة في واجهة الويب).

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

لنشر تعليق، أنشئ عنصر إدخال وأدرِجه على النحو التالي:

function createComment($gdClient, $blogID, $postID, $commentText)
{
  $uri = 'http://www.blogger.com/feeds/' . $blogID . '/' . $postID . '/comments/default';

  $newComment = $gdClient->newEntry();
  $newComment->content = $gdClient->newContent($commentText);
  $newComment->content->setType('text');
  $createdComment = $gdClient->insertEntry($newComment, $uri);

  $editLink = split('/', $createdComment->getEditLink()->href);
  $newCommentID = $editLink[8];

  return $newCommentID; 
}

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

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

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

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

public function printPostComments($gdClient, $blogID, $postID)
{
  $query = new Zend_Gdata_Query('http://www.blogger.com/feeds/' . $blogID . '/' . $postID . '/comments/default');
  $feed = $gdClient->getFeed($query);
  $printFeed($feed);
}

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

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

حذف التعليقات

لحذف تعليق، عليك تمرير عنوان URL لتعديل التعليق إلى delete طريقة على عنصر $gdClient على النحو التالي:

public function deleteComment($gdClient, $blogID, $postID, $commentID)
{
  $uri = 'http://www.blogger.com/feeds/' . $blogID . '/' . $postID . '/comments/default/' . $commentID;
  $gdClient->delete($uri);
}

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