راهنمای توسعه دهنده: PHP

Blogger Data API به برنامه های مشتری اجازه می دهد تا محتوای Blogger را در قالب فیدهای Google Data API مشاهده و به روز کنند.

برنامه مشتری شما می تواند از Blogger Data API برای ایجاد پست های وبلاگ جدید، ویرایش یا حذف پست های وبلاگ موجود و پرس و جو برای پست های وبلاگی که با معیارهای خاصی مطابقت دارند استفاده کند.

این سند علاوه بر ارائه پیش‌زمینه‌ای درباره قابلیت‌های Blogger Data API، نمونه‌هایی از تعاملات پایه داده API با استفاده از کتابخانه سرویس گیرنده Zend Google Data APIs را ارائه می‌کند. اگر علاقه مند به درک بیشتر در مورد پروتکل اساسی که کتابخانه استفاده می کند، به بخش پروتکل این راهنمای توسعه دهنده مراجعه کنید.

فهرست

حضار

این سند برای برنامه نویسانی در نظر گرفته شده است که می خواهند برنامه های کلاینت PHP بنویسند که بتوانند با بلاگر تعامل داشته باشند.

این سند فرض می‌کند که شما ایده‌های کلی پشت پروتکل Google Data APIs را درک می‌کنید.

برای اطلاعات مرجع در مورد کلاس ها و روش های ارائه شده توسط کتابخانه مشتری، به مرجع API کتابخانه مشتری PHP مراجعه کنید. برای اطلاعات عمومی مرجع Blogger Data API، به راهنمای مرجع پروتکل مراجعه کنید.

شروع شدن

برای راهنمایی در تنظیم کتابخانه سرویس گیرنده، به راهنمای شروع مراجعه کنید.

کتابخانه مشتری Zend به PHP 5.1.4 یا بالاتر نیاز دارد. این به عنوان بخشی از چارچوب Zend و همچنین به عنوان یک دانلود جداگانه در دسترس است. برای تعامل با بلاگر، از نسخه 1.0.0 یا جدیدتر کتابخانه سرویس گیرنده استفاده کنید.

ایجاد حساب بلاگر

ممکن است بخواهید برای اهداف آزمایشی برای یک حساب Blogger ثبت نام کنید . Blogger از حساب‌های Google استفاده می‌کند، بنابراین اگر از قبل یک حساب Google دارید، همه چیز آماده است.

اجرای کد نمونه

یک کلاینت نمونه کار کامل، حاوی تمام کدهای نمونه نشان داده شده در این سند، در مخزن Zend Framework SVN موجود است. نمونه در /framework/standard/trunk/demos/Zend/Gdata/Blogger.php قرار دارد. نمونه شامل تمام توابع توضیح داده شده در این سند است. فقط از طریق خط فرمان قابل اجراست:

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

قبل از اجرای این نمونه یا توسعه کد خود با استفاده از Zend Framework، ممکن است لازم باشد include_path را تنظیم کرده و کلاس‌های مناسب را بارگذاری کنید. مسیر include را می توان با استفاده از تنظیمات 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، پشتیبانی برای تنظیم‌کننده‌ها/گیرنده‌های جادویی به عنوان یک راحتی برای توسعه‌دهندگان اضافه شده است. اینها به ویژگی‌های یک کلاس اجازه می‌دهند که با استفاده از روش‌های سنتی setter/getter یا با دسترسی به ویژگی‌ها، به صورت ایمن به آنها دسترسی پیدا کنید. به عنوان مثال، اگر $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 Data API می توانید به فیدهای عمومی و خصوصی دسترسی داشته باشید. فیدهای عمومی نیازی به احراز هویت ندارند، اما فقط خواندنی هستند. اگر می‌خواهید وبلاگ‌ها را اصلاح کنید، مشتری شما باید قبل از درخواست فیدهای خصوصی، احراز هویت کند. این می تواند با استفاده از هر یک از سه روش احراز هویت کند: احراز هویت OAuth ، احراز هویت پروکسی AuthSub یا احراز هویت نام کاربری/گذرواژه ClientLogin .

برای اطلاعات بیشتر در مورد احراز هویت با APIهای Google Data به طور کلی، به مستندات احراز هویت مراجعه کنید.

اکثر نمونه‌های بخش‌های بعدی این سند فرض می‌کنند که شما یک شی کلاینت احراز هویت شده به نام $gdClient .

احراز هویت OAuth

برای مستندات مربوط به احراز هویت OAuth با استفاده از کتابخانه Zend PHP GData، لطفاً OAuth را در کتابخانه های سرویس گیرنده پروتکل داده Google مشاهده کنید.

احراز هویت پروکسی AuthSub

احراز هویت پراکسی AuthSub توسط برنامه‌های کاربردی وب استفاده می‌شود که باید کاربران خود را در حساب‌های Google احراز هویت کنند. اپراتور وب سایت و کد مشتری به نام کاربری و رمز عبور کاربر بلاگر دسترسی ندارند. در عوض، کلاینت توکن های AuthSub ویژه ای را دریافت می کند که به مشتری اجازه می دهد از طرف یک کاربر خاص عمل کند. برای اطلاعات بیشتر، به مستندات AuthSub مراجعه کنید.

وقتی کاربر برای اولین بار از برنامه شما بازدید می کند، هنوز احراز هویت نشده است. در این مورد، شما باید برخی از اطلاعات و لینکی را نمایش دهید که کاربر را به صفحه Google هدایت می کند تا درخواست شما برای دسترسی به وبلاگ خود را تأیید کند. کتابخانه مشتری Zend تابعی را برای ایجاد 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 handler):

بعد
آدرس صفحه ای که گوگل باید پس از احراز هویت کاربر را به آن هدایت کند.
محدوده
نشان می دهد که برنامه برای دسترسی به فیدهای Blogger درخواست یک رمز می کند. رشته scope مورد استفاده http://www.blogger.com/feeds/ است (البته با URL-encoded).
امن است
نشان می دهد که آیا مشتری یک توکن امن درخواست می کند یا خیر.
جلسه
نشان می دهد که آیا رمز برگشتی را می توان با یک توکن چند منظوره (جلسه) مبادله کرد یا خیر.

مثال بالا تماسی را نشان می دهد که توکن ایمن درخواست نمی کند (مقدار 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 آنها را به آدرس اینترنتی که در پارامتر پرس و جو next URL AuthSubRequest مشخص کرده اید هدایت می کند. سیستم AuthSub یک نشانه احراز هویت را به عنوان مقدار پارامتر کوئری token به آن URL اضافه می کند. مثلا:

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'] قرار می دهد.

سپس برنامه شما می تواند از مقدار نشانه جلسه در تعاملات بعدی با بلاگر استفاده کند. می‌توانید از 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، از جمله درخواست‌ها و پاسخ‌های نمونه، به مستندات احراز هویت برای برنامه‌های نصب‌شده مراجعه کنید.

توجه : برای همه درخواست ها در یک جلسه معین از یک نشانه استفاده کنید. برای هر درخواست بلاگر یک نشانه جدید دریافت نکنید.

توجه : همانطور که در مستندات 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_Draft و Zend_Gdata_App_Extension_Control جدید ایجاد می کنید و آنها را به ویژگی کنترل ورودی اختصاص می دهید.

می‌توانید با بازیابی پست پیش‌نویس، تنظیم ویژگی پیش‌نویس روی 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 getQueryUrl() است، که URL کدگذاری شده ساخته شده را به شما نشان می دهد.

توجه : در حال حاضر هیچ تنظیم کننده جادویی برای پارامترهای پرس و جو منتشر شده- published-min و published-max وجود ندارد. با این حال، می توانید از setStartIndex و setMaxResults استفاده کنید.

Blogger Data API از پارامترهای جستجوی زیر پشتیبانی می کند:

دسته بندی ها
دسته بندی ها (همچنین به عنوان برچسب شناخته می شود) را برای فیلتر کردن نتایج فید مشخص می کند. برای مثال، http://www.blogger.com/feeds/ blogID /posts/default/-/Fritz/Laurie ورودی‌هایی را با هر دو برچسب Fritz و Laurie برمی‌گرداند.
حداکثر نتایج
حداکثر تعداد ورودی برای بازگشت.
منتشر شده-دقیقه، منتشر شده-حداکثر
محدوده تاریخ انتشار ورودی.
شروع-شاخص
ایندکس بر اساس 1 اولین نتیجه ای که بازیابی می شود (برای صفحه بندی).

برای اطلاعات بیشتر در مورد پارامترهای پرس و جو، به راهنمای مرجع API داده Blogger و راهنمای مرجع Google Data APIs مراجعه کنید.

به روز رسانی پست ها

برای به‌روزرسانی یک پست وبلاگ موجود، ابتدا ورودی مورد نظر برای به‌روزرسانی را بازیابی می‌کنید، سپس آن را تغییر می‌دهید و سپس با استفاده از روش save آن را به Blogger ارسال می‌کنید. قطعه کد زیر عنوان و محتوای یک ورودی وبلاگ را تغییر می دهد، با این فرض که شما قبلاً ورودی را از سرور بازیابی کرده اید.

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);
}

بازگشت به بالا