在对用户进行身份验证时,如何获取用户ID以便列出他们的博客。
<?php
require_once 'google-api-php-client/src/Google_Client.php';
require_once 'google-api-php-client/src/contrib/Google_BloggerService.php';
session_start();
$client = new Google_Client();
$client->setApplicationName('Blogger');
$client->setClientId('insert_your_oauth2_client_id');
$client->setClientSecret('insert_your_oauth2_client_secret');
$client->setRedirectUri('insert_your_oauth2_redirect_uri');
$client->setDeveloperKey('insert_your_simple_api_key');
$blogger = new Google_BloggerService($client);
if (isset($_GET['code'])) {
$client->authenticate();
$_SESSION['token'] = $client->getAccessToken();
$redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL));
}
if (isset($_SESSION['token'])) {
$client->setAccessToken($_SESSION['token']);
}
if ($client->getAccessToken()) {
var_dump($blogger->blogs->listByUser("USER_ID_HERE")); //how do i get the user id?
} else {
$authUrl = $client->createAuthUrl();
print "<a href='$authUrl'>Connect Me!</a>";
}
文档是无用的,它所展示的只是如何使用未知的东西,即blogID、postID等获得博客帖子等。为了能够获得blogID,postID我需要初始用户ID,而在验证时没有给出。
https://developers.google.com/blogger/docs/3.0/using
在做博客OAuth时,我也遇到了同样的问题。但在阅读了5-10次文档后,我发现我们不需要userID来获得blogID。获得访问令牌后,您可以通过向博客集合URI:发送HTTPGET请求来检索用户博客的列表
https://www.googleapis.com/blogger/v3/users/{userId}/blogs
或请求为:
GET https://www.googleapis.com/blogger/v3/users/self/blogs
Authorization: /* OAuth 2.0 token here */
注意:用户必须经过身份验证才能列出自己的博客,因此必须在GET请求中提供Authorization HTTP标头。
有关更多信息,请访问谷歌博客api文档
var_dump($blogger->blogs->listByUser('self'));