Список сообщений Blogger через API v3 с помощью PHP Google_Client, Google_Service_Blogger

Я использую клиентскую библиотеку Google PHP для доступа к API Google (см. ссылка)

Я пытаюсь получить список сообщений из частного блога (тот же контент, который можно найти в RSS-канал). Частные блоги блоггеров, очевидно, не имеют открытых RSS-каналов, так что это моя попытка

  1. программно получить содержимое блога
  2. удовлетворить ограничения конфиденциальности на блоге.

Маркер, используемый в клиенте API, является авторизованным читателем блога.

Вот код Все это прекрасно работает (подключается, получает правильный объект блога и т. Д.), Но завершается неудачно при попытке получить сами данные публикации с помощью функции getItems (см. источник библиотеки, линия 2007). empty array is returned,

$client= new Google_Client();
$client->setClientId(GGL_CLIENTID);
$client->setClientSecret(GGL_SECRET);
$client->setRedirectUri(GGL_REDIRECT);
$client->refreshToken(GGL_TOKEN);
$service=new Google_Service_Blogger($client);

$blog      = $service->blogs->getByUrl('http://MYBLOG.blogspot.com/');
$blogName  = $blog->getName();
$blogUrl   = $blog->getURL();
$postsObj  = $blog->getPosts();
$postCount = $postsObj->getTotalItems();
$posts     = $postsObj->getItems();

echo "BLOG NAME: $blogName \n";
echo "BLOG URL: $blogUrl \n";
echo "TOTAL POSTS: $postCount \n";
echo "POST DATA: \n"; print_r($posts);

Учитывая, что через getTotalItems отображается правильное количество сообщений, я убежден, что все сантехники правильные. Что потребуется, чтобы получить возвращенные данные?

Примечание: я понимаю, что клиентская библиотека находится в бета-версии, поэтому это может быть дыра, которую еще предстоит заполнить

4

Решение

эхо «POST DATA: \ n»; print_r ($ сообщений);

ваша замена:

$blogId = $blog->getId();
$post = $service->posts->listPosts($blogId);
print_r($post);
2

Другие решения

Вот как вы можете перечислить определенное количество постов (если вы ограничены) из блога:

$id = $blog->getId();
$posts = $service->posts->listPosts($id, array("maxResults"=>5));
foreach($posts as $post) {
echo "<br/>title:  ".$post->getTitle();
echo "<br/>url:  ".$post->getUrl();
echo "<br/>labels:  <pre>".print_r($post->getLabels(),TRUE)."</pre>";
// etc.
}
0

$blogger = new Google_Service_Blogger( $this->client ); // pass authenticated client
$posts = $blogger->posts->listPosts($blogId); // blog id : e.g 1751515248423926432
echo "<pre>";
print_r( $posts );
echo "</pre>";
0
По вопросам рекламы [email protected]