Я использую клиентскую библиотеку Google PHP для доступа к API Google (см. ссылка)
Я пытаюсь получить список сообщений из частного блога (тот же контент, который можно найти в RSS-канал). Частные блоги блоггеров, очевидно, не имеют открытых RSS-каналов, так что это моя попытка
Маркер, используемый в клиенте 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 отображается правильное количество сообщений, я убежден, что все сантехники правильные. Что потребуется, чтобы получить возвращенные данные?
Примечание: я понимаю, что клиентская библиотека находится в бета-версии, поэтому это может быть дыра, которую еще предстоит заполнить
эхо «POST DATA: \ n»; print_r ($ сообщений);
ваша замена:
$blogId = $blog->getId();
$post = $service->posts->listPosts($blogId);
print_r($post);
Вот как вы можете перечислить определенное количество постов (если вы ограничены) из блога:
$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.
}
$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>";