我正在尝试根据此文档使用 Google Contacts API 检索联系人的照片。使用的 PHP 客户端库在这里。我成功获取代码和用户信息,但未能获取用户的照片数据。
我得到的回应是:
照片查询失败 - 无效的联系人 ID
.
这是我用来获取用户照片数据的回调函数的 PHP 代码:
$client = new Google_Client();
$client->setClientId(GOOGLE_APP_CLIENT_ID);
$client->setClientSecret(GOOGLE_APP_CLIENT_SECRET);
$client->setRedirectUri(GOOGLE_APP_CLIENT_REDIRECT_URI);
$client->addScope("openid profile email https://www.google.com/m8/feeds");
// Create a OAuth 2 service instance
$oauth2 = new Google_Service_Oauth2($client);
// Get the access token using code.
if (isset($_GET['code'])) {
// Authenticate the code
$client->authenticate($_GET['code']);
$_SESSION['access_code'] = $client->getAccessToken();
// Set the access token
$client->setAccessToken($_SESSION['access_token']);
$temp_obj = $client->verifyIdToken();
....
// Get the user's info
$guser_info = $oauth2->userinfo->get();
// Get the contact id
$contact_id = $guser_info['id'];
// Get the user email
$user_email = $guser_info['email'];
// Make an authenticated request to the photo
$req = new Google_Http_Request("https://www.google.com/m8/feeds/photos/media/default/$contact_id");
// For replacing above line with the following also got the same result.
//$req = new Google_Http_Request("https://www.google.com/m8/feeds/photos/media/$user_email/$contact_id");
// Make an authenticated request
$val = $client->getAuth()->authenticatedRequest($req);
print_r($val->getResponseBody());// Get "Photo query failed - invalid contact ID"
} ...
我已经Contacts API
在控制台项目中启用并添加了 scope https://www.google.com/m8/feeds
。
检索到的 ID 是否与用户的联系人 ID不同,或者有没有办法获取用户的联系人 ID或我的代码中有什么问题?
任何帮助或意见表示赞赏。