Geliştirici Kılavuzu: PHP

Blogger Data API, istemci uygulamaların Blogger içeriğini Google Data API feed'leri biçiminde görüntülemesine ve güncellemesine olanak verir.

İstemci uygulamanız Blogger Data API'yi kullanarak yeni blog yayınları oluşturabilir, mevcut blog yayınlarını düzenleyebilir veya silebilir, ayrıca belirli ölçütlere uyan blog yayınlarını sorgular.

Bu belgede, Blogger Data API'nin işlevleriyle ilgili temel bilgilerin yanı sıra Zend Google Veri API'leri istemci kitaplığı kullanılarak gerçekleştirilen temel Data API etkileşimlerine dair örnekler de sağlanmaktadır. Kitaplığın kullandığı temel protokol hakkında daha fazla bilgi edinmek isterseniz bu geliştirici kılavuzunun Protocol bölümüne göz atın.

İçindekiler

Kitle

Bu belge, Blogger ile etkileşimde bulunabilecek PHP istemci uygulamaları yazmak isteyen programcılar için hazırlanmıştır.

Bu belgede, Google Veri API'leri protokolünün arkasındaki genel fikirleri anladığınız varsayılmaktadır.

İstemci kitaplığı tarafından sağlanan sınıflar ve yöntemler hakkında referans bilgiler için PHP istemci kitaplığı API referansına bakın. Genel Blogger Data API referans bilgileri için Protokol referans kılavuzuna bakın.

Başlarken

İstemci kitaplığını ayarlama konusunda yardım almak için Başlangıç Kılavuzu'na göz atın.

Zend istemci kitaplığı için PHP 5.1.4 veya sonraki sürümler gereklidir. Zend Çerçevesi kapsamında ve ayrıca ayrı bir indirme olarak kullanılabilir. Blogger'la etkileşimde bulunmak için istemci kitaplığının 1.0.0 veya daha yeni bir sürümünü kullanın.

Blogger hesabı oluşturma

Test amacıyla bir Blogger hesabına kaydolmak isteyebilirsiniz. Blogger Google Hesapları'nı kullanır, yani bir Google hesabınız varsa hâlâ hazırsınız demektir.

Örnek kodu çalıştırma

Bu dokümanda gösterilen tüm örnek kodu içeren tam çalışan örnek istemci Zend Framework SVN deposunda mevcuttur. Örnek /framework/standard/trunk/demos/Zend/Gdata/Blogger.php adresinde bulunmaktadır. Örnek, bu dokümanda açıklanan tüm işlevleri içerir. Yalnızca komut satırından çalıştırılabilir:

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

Bu örneği çalıştırmadan veya Zend Çerçevesi'ni kullanarak kendi kodunuzu geliştirmeden önce include_path özelliğini ayarlayıp uygun sınıfları yüklemeniz gerekebilir. Dahil etme yolu bir php.ini ayarı veya set_include_path yöntemi kullanılarak ayarlanabilir. Bu kod; temel Zend_Gdata sınıfı, Zend_Gdata_Query sınıfı ve Zend_Gdata_ClientLogin kimlik doğrulama sınıfına erişim izni ister.

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

Sihirli işaretleyiciler

PHP istemci kitaplığına, geliştiricilere kolaylık sağlamak amacıyla sihirli setler/alıcılar için destek eklendi. Bunlar, bir sınıfın özelliklerine geleneksel setter/getget yöntemleri kullanılarak veya özelliklere erişilerek güvenli bir şekilde erişilmesine olanak tanır. Örneğin, $gdataObject bu kitaplıktaki bir nesnenin örneğiyse aşağıdaki iki kod satırının etkileri vardır:

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

Benzer şekilde, şu iki kod satırının da etkileri aynıdır:

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

Benzer şekilde, sihirli fabrika yöntemleri yeni nesnelerin bildirilmesini kolaylaştırır. Zend adlandırma kuralının gerektirdiği uzun sınıf adlarını hatırlamak yerine bir Zend hizmet istemcisinde newObject(); yöntemini çağırarak yeni bir object oluşturabilirsiniz. Örneğin, aşağıdaki iki snippet'te yeni bir draft uzantı nesnesi belirtilir. Gönderi oluşturma bölümünde drafts hakkında daha fazla bilgi bulabilirsiniz.

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

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

Sihirli setler/alıcılar ve fabrikalar isteğe bağlıdır. Bu nedenle, size en uygun yaklaşımı seçin.

Diğer kaynaklar

Zend Framework \Google3 API'leri bileşeni için diğer kaynaklar (Zend_Gdata):

Blogger hizmetinde kimlik doğrulaması

Blogger Data API'yi kullanarak hem herkese açık hem de gizli feed'lere erişebilirsiniz. Herkese açık feed'ler kimlik doğrulama gerektirmez ancak salt okunurdur. Bloglarda değişiklik yapmak istiyorsanız müşterinizin, özel feed istemeden önce kimliğini doğrulaması gerekir. Şu üç yaklaşımdan birini kullanarak kimlik doğrulaması yapabilir: OAuth kimlik doğrulaması, AuthSub proxy kimlik doğrulaması veya ClientLogin kullanıcı adı/şifresi kimlik doğrulaması.

Genel olarak Google Veri API'leri ile kimlik doğrulama hakkında daha fazla bilgi edinmek için kimlik doğrulama belgelerini inceleyin.

Bu dokümanın sonraki bölümlerinde verilen örneklerin çoğu, $gdClient adlı kimliği doğrulanmış bir istemci nesnesine sahip olduğunuzu varsayar.

OAuth kimlik doğrulaması

Zend PHP GData kitaplığını kullanarak OAuth kimlik doğrulaması hakkında bilgi edinmek için lütfen Google Veri Protokolü İstemci Kitaplıklarındaki OAuth bölümüne bakın.

AuthSub proxy kimlik doğrulaması

AuthSub proxy kimlik doğrulaması, kullanıcılarının Google Hesaplarında kimliklerini doğrulaması gereken web uygulamaları tarafından kullanılır. Web sitesi operatörü ve istemci kodu, Blogger kullanıcısının kullanıcı adı ve şifresine erişemez. Bunun yerine, istemci, istemcinin belirli bir kullanıcı adına işlem yapmasına olanak tanıyan özel AuthSub jetonları alır. Daha ayrıntılı bilgi için AuthSub belgelerine bakın.

Bir kullanıcı uygulamanızı ilk ziyaret ettiğinde kimliği henüz doğrulanmamıştır. Bu durumda, kullanıcıların bloglarına erişim isteğinizin kimliğini doğrulamak için bazı bilgiler ve kullanıcıyı bir Google sayfasına yönlendiren bir bağlantı göstermeniz gerekir. Zend istemci kitaplığı, Google sayfasının URL'sini oluşturmak için bir işlev sağlar. Aşağıdaki kod, AuthSubRequest sayfasının URL'sini alır:

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 yöntemi, aşağıdaki parametreleri alır (AuthSubRequest işleyici tarafından kullanılan sorgu parametrelerine karşılık gelir):

sonraki
Kimlik doğrulamasından sonra Google'ın kullanıcıyı yönlendirmesi gereken sayfanın URL'si.
kapsam
Uygulamanın Blogger feed'lerine erişmek için jeton istediğini belirtir. Kullanılacak kapsam dizesi http://www.blogger.com/feeds/ (elbette URL kodlamalı).
güvenli
İstemcinin güvenli bir jeton isteyip istemediğini belirtir.
oturum sayısı
İade edilen jetonun çok kullanımlı (oturum) jetonuyla değiştirilip değiştirilemeyeceğini belirtir.

Yukarıdaki örnekte, güvenli jeton istemeyen bir çağrı gösterilmektedir (secure değeri false'dir). Açılan istek URL'si aşağıdaki gibi görünebilir:

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

Kullanıcı, Google'ın sitesindeki bağlantıyı takip eder ve kendi Google Hesabının kimliğini doğrular.

Kullanıcı kimliğini doğruladıktan sonra AuthSub sistemi, kullanıcıyı AuthSubRequest URL'sinin next sorgu parametresinde belirttiğiniz URL'ye yönlendirir. AuthSub sistemi, bu URL'ye token sorgu parametresinin değeri olarak bir kimlik doğrulama jetonu ekler. Örnek:

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

Jeton değerini $_GET['token'] kullanarak alabilirsiniz.

Bu jeton değeri, tek kullanımlık bir AuthSub jetonunu temsil eder. Bu örnekte, $session = true belirtildiği için bu jeton, AuthSubSessionToken hizmetini çağıran Zend_Gdata_AuthSub::getAuthSubSessionToken yöntemi kullanılarak bir AuthSub oturum jetonuyla değiştirilebilir:

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

Kod snippet'i ilk olarak bir AuthSub oturum jetonunun mevcut olup olmadığını kontrol eder. Bu durumda, ancak URL'de tek kullanımlık bir jeton belirtilirse kod snippet'i, tek kullanımlık jetonu getAuthSubSessionToken yöntemine geçirir ve AuthSub arayüzü bir oturum jetonu döndürür. Ardından kod, oturum jetonu değerini $_SESSION['sessionToken'] oturum değişkenine yerleştirir.

Uygulamanız, daha sonra Blogger ile yapılan etkileşimlerde oturum jetonu değerini kullanabilir. AuthSub kimlik bilgilerini eklemek için Authorization üst bilgisine sahip bir Zend_Http_Client nesnesi edinmek üzere Zend_Gdata_AuthSub::getHttpClient yöntemini kullanabilirsiniz:

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

ClientLogin kullanıcı adı/şifre kimlik doğrulaması

İstemciniz tek kullanıcılı, yüklü bir istemci (masaüstü uygulaması gibi) ise ClientLogin kimlik doğrulamasını kullanın.

Aşağıdaki kod; ClientLogin hizmetine istek gerçekleştirmek, kimlik doğrulama jetonu almak ve uygun kimlik doğrulama üstbilgisine sahip bir Zend_Http_Client nesnesi oluşturmak için Zend_Gdata_ClientLogin::getHttpClient yöntemini kullanır. Daha sonra bu yöntemin döndürdüğü HttpClient, Zend_Gdata hizmet nesnesini oluşturmak için kullanılır.

$accountType politikasının açıkça GOOGLE şeklinde ayarlandığına dikkat edin. Bu parametre ayarlanmazsa G Suite kullanıcılarının Blogger API'yi başarılı bir şekilde kullanması engellenir.

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

Örnek istekler ve yanıtlar dahil ClientLogin kimlik doğrulaması hakkında daha fazla bilgi edinmek için Yüklü Uygulamalar İçin Kimlik Doğrulama dokümanına bakın.

Not: Belirli bir oturumdaki tüm istekler için aynı jetonu kullanın. Her Blogger isteği için yeni bir jeton almayın.

Not: ClientLogin dokümanlarında açıklandığı gibi kimlik doğrulama isteği başarısız olabilir ve bir CAPTCHA doğrulaması talep edebilir. Google'ın CAPTCHA testini yapmasını ve işlemesini istiyorsanız kullanıcıyı https://www.google.com/accounts/DisplayUnlockCaptcha?service=blogger (ClientLogin dokümanlarında belirtilen CAPTCHA işleme URL'si yerine) gönderin.

Blog listesi alma

Blogger Data API, belirli bir kullanıcıya ait blogları listeleyen bir feed sağlar. Bu feed "metafeed."

Aşağıdaki örnek kod, meta feed'i almak için kimliği doğrulanmış $gdClient nesnesini kullanır ve ardından her blogun başlığını yazdırır.

Sorgu sınıfı URL'nin oluşturulmasıyla Zend_Gdata_Query sınıfı ilgilenir. Bu durumda ek bir işlem yapılması gerekmez ancak Query sınıfının faydaları, bu dokümanın yayınları sorgu parametrelerine göre alma bölümünde açıkça belirtilir.

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

getFeed yöntemi tarafından kullanılan URL'ye dikkat edin. Bu, varsayılan meta feed URL'sidir; kimliği doğrulanmış kullanıcıya ait blogların listesini döndürür. Farklı bir kullanıcının feed'ine erişmek için kullanıcının kimliğini meta feed URL'sine default yerine yerleştirebilirsiniz. Kullanıcının kimliği, kullanıcının profil URL'sinin sonundaki dize dizesidir.

Aşağıdaki kod snippet'i, blog kimliğinin feed'den nasıl çıkarılacağını gösterir. Yayın ve yorumlarda oluşturma, güncelleme ve silme işlemleri gerçekleştirmek için blog kimliğine ihtiyacınız olacaktır. $index değişkeni, kullanıcının blog feed'indeki hangi blogun kullanıldığını gösterir. id alanı, tag:blogger.com,1999:user-userID.blog-blogID biçimini alır. Bu nedenle '-' karakterindeki bir split, blog kimliğini elde edilen dizinin son öğesine yerleştirir.

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

Yayın oluşturma

Blogger Data API, yeni blog girişleri oluşturmanıza ve yayınlamanıza ve giriş taslakları oluşturmanıza olanak tanır.

Not: Yayınlar için özel yazar ayarlanması şu anda desteklenmemektedir. Tüm yeni yayınlar kimliği doğrulanmış kullanıcı tarafından oluşturulmuş gibi görünür.

Blog yayını yayınlama

Yeni istemci girişleri yayınlamak için PHP istemci kitaplığını kullanabilirsiniz.

Önce blog yayınını temsil eden bir giriş örneği oluşturun. Ardından blog yayınının başlığını, içeriğini ve diğer özelliklerini ayarlayabilirsiniz. Son olarak, yayını eklemek için insertEntry yöntemini çağırın. Yeni Zend_Gdata_Entry, Zend_Gdata_App_Extension_Title ve Zend_Gdata_App_Extension_Content nesneleriyle sihirli fabrika anlık görüntülerini burada görebilirsiniz.

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

Taslak blog yayını oluşturma

Taslak yayınlar, herkese açık yayınlarla aynı şekilde oluşturulur. Ancak giriş nesnesinin taslak özelliğini ayarlamanız gerekir. Vurgulanan satırları ekleyerek taslak olarak yukarıdakilere benzer bir blog yayını oluşturabilirsiniz:

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

Gönderinin başlığını veya içeriğini ayarlamayla aynı şekilde yeni Zend_Gdata_App_Extension_Control ve Zend_Gdata_App_Extension_Draft nesneleri oluşturup bunları giriş kontrolü özelliğine atarsınız.

Taslak yayını alıp taslak özelliğini no olarak ayarlayıp yayını güncelleyerek mevcut bir taslak blog yayınını yayınlanmış bir yayına dönüştürebilirsiniz. Sonraki iki bölümde yayınları alma ve güncelleme konularını ele alacağız.

Yayınlar alınıyor

Aşağıdaki bölümlerde, sorgu parametreleri içeren ve içermeyen blog yayınları listesinin nasıl alınacağını açıklanmaktadır.

Blogger herkese açık feed'lerini kimlik doğrulaması olmadan sorgulayabilirsiniz. Bu nedenle, herkese açık bir blogdan yayın almadan önce kimlik bilgisi ayarlamanız veya AuthSub kimlik doğrulaması yapmanız gerekmez.

Tüm blog yayınları alınıyor

Kullanıcının yayınlarını almak için blog meta verisini almak amacıyla kullanılan getFeed yöntemini kullanın ancak bu kez blog yayını feed'i URL'sini gönderin:

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

Sorgu parametrelerini kullanarak yayınları alma

Blogger Data API, belirli bir kriterle eşleşen bir dizi giriş (örneğin, belirli bir tarih aralığında yayınlanmış veya güncellenmiş blog yayınları için istekte bulunmanız) talep etmenize olanak tanır. Bunu yapmak için bir sorgu nesnesi oluşturur ve bunu getFeed yöntemine geçirirsiniz.

Örneğin, tarih aralığı sorgusu göndermek için sorgu nesnesinin published-min ve published-max parametrelerini ayarlayın. Aşağıdaki kod snippet'i, belirtilen başlangıç zamanı ile bitiş zamanı arasında yayınlanan her blog yayınının başlığını ve içeriğini yazdırır:

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 sınıfı için kullanışlı bir hata ayıklama yöntemi, oluşturulan yapılandırılmış URL'yi gösteren getQueryUrl() öğesidir.

Not: Şu anda published-min ve published-max sorgu parametreleri için sihirli bir set bulunmamaktadır. Ancak setStartIndex ve setMaxResults işaretlemelerini kullanabilirsiniz.

Blogger Data API aşağıdaki sorgu parametrelerini destekler:

kategoriler
Feed sonuçlarını filtrelemek için kategorileri (etiketler olarak da bilinir) belirtir. Örneğin, http://www.blogger.com/feeds/blogID/posts/default/-/Fritz/Laurie hem Fritz hem de Laurie etiketine sahip girişleri döndürür.
maks. sonuç
Döndürülecek maksimum giriş sayısı.
yayınlanan-min, yayınlanan-maksimum
Giriş yayın tarihleriyle ilgili sınırlar.
başlangıç dizini
Alınan ilk sonucun 1 tabanlı dizini (sayfalara ayırma için).

Sorgu parametreleri hakkında daha fazla bilgi için Blogger Data API Referans Kılavuzu ve Google Veri API'leri Referans Kılavuzu'na göz atın.

Yayınlar güncelleniyor

Mevcut bir blog yayınını güncellemek için önce güncellemek istediğiniz girişi alın, değiştirin ve ardından save yöntemini kullanarak Blogger'a gönderin. Aşağıdaki kod snippet'i, girişi sunucudan zaten aldığınızı varsayarak blog girişinin başlığını ve içeriğini değiştirir.

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

Not: Yayınlarla ilgili yazar verilerinin değiştirilmesi şu anda desteklenmemektedir.

Yayınları silme

Bir yayını silmek için yayının düzenleme URL'sini $gdClient nesnenizdeki delete yöntemine aktarın. Örneğin:

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

Yorumlar

Blogger Data API'sı yorumların oluşturulmasına, alınmasına ve silinmesine olanak tanır. Yorumların güncellenmesi desteklenmez (web arayüzünde kullanılamaz).

Yorum oluşturma

Yorum yayınlamak için bir giriş nesnesi oluşturun ve bunu aşağıdaki gibi ekleyin:

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

Not: Şu anda yalnızca kimliği doğrulanmış kullanıcının sahip olduğu bir blogda yorum yayınlayabilirsiniz.

Not: Yorumlar için özel bir yazar ayarlamak şu anda desteklenmemektedir. Tüm yeni yorumlar, kimliği doğrulanmış kullanıcı tarafından oluşturulmuş gibi görünür.

Yorumları alma

Belirli bir yayının yorumlarını, yorumların yorum feed'i URL'sinden alabilirsiniz:

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

Blog'un yorum feed'i URL'sini kullanarak da tüm yayınlarınızın yorumlarını öğrenebilirsiniz:

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

Yorumları silme

Bir yorumu silmek için yorumun düzenleme URL'sini $gdClient nesnenizdeki delete yöntemine şu şekilde iletin:

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

Başa dön