המדריך למפתחים: PHP

ממשק ה-API של Blogger Data מאפשר לאפליקציות לקוח להציג ולעדכן תוכן של Blogger בצורת פידים של Google Data API.

בעזרת אפליקציית הלקוח שלכם ב-Blogger Data API תוכלו ליצור פוסטים חדשים בבלוג, לערוך או למחוק פוסטים בבלוגים קיימים ולהגיש שאילתות על פוסטים בבלוג שתואמים לקריטריונים מסוימים.

בנוסף להסבר על היכולות של ה-Blogger Data API, במסמך הזה מוצגות דוגמאות לאינטראקציות בסיסיות עם Data API באמצעות ספריית הלקוחות של Zends Data. אם אתם רוצים לקבל מידע נוסף על הפרוטוקול הבסיסי שבו הספרייה משתמשת, עיינו בקטע 'פרוטוקול' במדריך הזה.

תוכן עניינים

Audience

המסמך הזה מיועד למתכנתים שרוצים לכתוב אפליקציות לקוח ב-PHP שיכולות לתקשר עם Blogger.

ההנחה היא שהבנת את הרעיונות הכלליים שמאחורי פרוטוקול Google Data APIs.

בחומר העזר בנושא הכיתות והשיטות שסופקו על ידי ספריית הלקוח, עיינו בחומר העזר בנושא PHP בספריית הלקוח. לקבלת מידע כללי על קובצי עזר של Blogger Data API, אפשר לעיין במדריך העזר בנושא פרוטוקול Protocol.

איך מתחילים

לקבלת עזרה בהגדרת ספריית הלקוח, אפשר לעיין במדריך לתחילת העבודה.

ספריית הלקוח ב-Zend מצריכה גרסת PHP 5.1.4 ואילך. היא זמינה כחלק ממסגרת Zend וגם כהורדה נפרדת. כדי לנהל אינטראקציה עם Blogger, צריך להשתמש בגרסה 1.0.0 ואילך של ספריית הלקוח.

יצירת חשבון Blogger

ייתכן שתרצו להירשם לחשבון Blogger למטרות בדיקה. Blogger משתמש בחשבונות Google, כך שאם כבר יש לכם חשבון Google, אתם מוכנים.

הרצת הקוד לדוגמה

לקוח לדוגמה שפועל באופן מלא ומכיל את כל הקוד לדוגמה המוצג במסמך זה, זמין במאגר SVN של Zend Framework. ניתן למצוא את הדוגמה בכתובת /framework/standard/trunk/demos/Zend/Gdata/Blogger.php הדוגמה מכילה את כל הפונקציות שמוסברות במסמך זה. ניתן להריץ אותה רק משורת הפקודה:

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

לפני הרצת הדגימה הזו או פיתוח קוד משלכם באמצעות framework של Zend framework, יכול להיות שתצטרכו להגדיר את include_path ולטעון את הכיתות המתאימות. אפשר להגדיר את נתיב ההכללה באמצעות הגדרות.php או באמצעות השיטה 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, אימות שרת proxy של AuthSub או אימות שם משתמש/סיסמה של ClientLogin.

למידע נוסף על אימות באמצעות ממשקי API של נתוני Google באופן כללי, ניתן לעיין במסמכי התיעוד.

רוב הדוגמאות בדוגמאות הבאות במסמך הזה מבוססות על ההנחה שיש לך אובייקט לקוח מאומת בשם $gdClient.

אימות OAuth

למידע על אימות OAuth באמצעות ספריית Zend PHP GData, יש לעיין בספריות OAuth בספריות הלקוח של פרוטוקול Google Data.

אימות שרת proxy של AuthSub

אימות שרת proxy של AuthSub משמש את אפליקציות האינטרנט שצריכים לאמת את המשתמשים שלהן לחשבונות Google. למפעיל האתר ולקוד הלקוח אין גישה לשם המשתמש ולסיסמה של משתמש Blogger, אלא הלקוח מקבל אסימוני AuthSub מיוחדים שמאפשרים ללקוח לפעול בשם המשתמש. למידע מפורט יותר, ניתן לעיין בתיעוד של OAuthSub.

כשמשתמש מבקר באפליקציה שלכם לראשונה, הוא עדיין לא אומת. במקרה כזה, תצטרכו להציג חלק מהמידע וקישור שמפנה את המשתמש לדף 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):

הבא
כתובת ה-URL של הדף ש-Google צריכה להפנות אליו את המשתמש לאחר האימות.
היקף
מראה שהאפליקציה מבקשת אסימון כדי לגשת לפידים של Blogger. מחרוזת ההיקף שצריך להשתמש בה היא http://www.blogger.com/feeds/ (כמובן שכתובת ה-URL מקודדת).
מאובטח
מראה אם הלקוח מבקש אסימון מאובטח.
סשן
מציין אם ניתן להחליף את האסימון שהוחזר באסימון לשימוש חוזר (ביקור).

הדוגמה שלמעלה מראה שיחה שלא מבקשת אסימון מאובטח (הערך של secure הוא false). כתובת האתר שיתקבל עשויה להיראות כך:

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 מצרפת אסימון אימות לכתובת ה-URL הזו כערך של פרמטר השאילתה 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. אם לא, אבל מוגדר אסימון לשימוש חד-פעמי בכתובת האתר, קטע הקוד יעביר את האסימון לשימוש חד-פעמי לשיטה 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).

מתבצע אחזור של רשימת בלוגים

ממשק ה-API של Blogger Data מספק עדכון שמפרט את הבלוגים של משתמש מסוים; העדכון הזה נקרא "metafeed."

הקוד לדוגמה הבא משתמש באובייקט $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 בתו &339;' מציין את מזהה הבלוג ברכיב האחרון של המערך שיתקבל.

$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.
תוצאות מקסימליות
המספר המרבי של ערכים להחזרה.
דקות פרסום, מועד פרסום מרבי
הגבולות של תאריכי הפרסום.
אינדקס התחלתי
האינדקס מבוסס-1 של התוצאה הראשונה שאוחזר (להחלפה).

למידע נוסף על פרמטרים של שאילתות, ניתן לעיין במדריך העזר לממשקי API של Blogger Data ובמדריך העזר לממשקי API של Google Data.

מתבצע עדכון פוסטים

כדי לעדכן פוסט קיים בבלוג, קודם צריך לאחזר את הרשומה שאתם רוצים לעדכן, ואז לשנות אותה ואז לשלוח אותה ל-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);
}

חזרה למעלה