我正在使用Google PHP客户端库访问Google API(请参阅reference)
我正在尝试从私人博客中获取帖子列表(在RSS Feed中可以找到相同的内容)。私人博客博客显然没有开放的RSS源,所以这是我对两者的尝试
API客户端中使用的令牌是博客的授权读者。
这是代码。这一切都很好(连接,检索正确的博客对象等),但在尝试使用getItems函数获取post数据时失败(参见library source,第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显示正确数量的帖子,我确信所有的管道都是正确的。如何返回帖子数据?
注意:我意识到客户端库处于测试阶段,所以这可能是一个尚未填补的漏洞。
答案 0 :(得分:2)
回显“POST DATA:\ n”;的print_r($帖);
你的替换:
$blogId = $blog->getId();
$post = $service->posts->listPosts($blogId);
print_r($post);
答案 1 :(得分:0)
以下是如何从博客中列出特定数量的帖子(如果您受到限制):
$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.
}
答案 2 :(得分: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>";