我經歷了數小時的深刻痛苦,終於使用this tutorial(基於Google Analytics),更接近Google API API客戶端的配置和使用。Google API PHP客戶端 - 聯繫人服務
所以,現在我終於以一種看起來合法和正式的方式驗證自己。我的自然想法是存在一個contrib/Google_ContactsService.php
,但令我驚訝的是,無法找到32個其他服務類別。
我感覺就像回到了零。有什麼辦法可以 - 合法和正式 - 獲取特定用戶的聯繫人? (那裏有大量的教程,但都是過時的和黑客)。
編輯:我注意到有可用here庫的新版本,但仍然沒有任何「聯繫人」服務於.../Service/ folder
編輯被發現: 我迄今爲止的進展。最後一行失敗,迴應谷歌:401. There was an error in your request.
- 我想這是因爲缺乏權限(我沒有要求聯繫人權限)。但是,如何在沒有「Google_ContactsService.php」的情況下執行此操作?我搞不清楚了。見代碼:
<?php
session_start();
/**
* Require the libaries
*/
require_once 'assets/php/Google/Google_Client.php';
require_once 'assets/php/Google/contrib/Google_AnalyticsService.php'; // from tutorial - I am supposed to get the Contacts Service, which is nowhere to find.
/**
* Set up the Google_Client
*/
$client = new Google_Client();
$client->setAccessType('online'); // default: offline
$client->setApplicationName($apiConfig['application_name']);
$client->setClientId($apiConfig['oauth2_client_id']);
$client->setClientSecret($apiConfig['oauth2_client_secret']);
$client->setRedirectUri($apiConfig['oauth2_redirect_uri']);
$client->setDeveloperKey($apiConfig['developer_key']); // API key
/**
* $service implements the client interface, has to be set before auth call
*/
$service = new Google_AnalyticsService($client);
/**
* Log out
*/
if (isset($_GET['logout'])) { // logout: destroy token
unset($_SESSION['google_token']);
exit('Logged out.');
}
/**
* Google auth code received
*
* Store access token
*/
if (isset($_GET['code'])) { // we received the positive auth callback, get the token and store it in session
$client->authenticate();
$_SESSION['google_token'] = $client->getAccessToken();
}
/**
* Set auth token
*/
if (isset($_SESSION['token'])) { // extract token from session and configure client
$token = $_SESSION['token'];
$client->setAccessToken($token);
}
/**
* If no token, redirect and auth
*/
if (!$client->getAccessToken()) { // auth call to google
$authUrl = $client->createAuthUrl();
header("Location: ".$authUrl);
exit;
}
/**
* Get contacts
*/
$access_token = json_decode($client->getAccessToken())->access_token;
$url = 'https://www.google.com/m8/feeds/contacts/default/full?alt=json&v=3.0&oauth_token='.$access_token;
$response = file_get_contents($url);
exit($response);
echo 'Hello, world.';
好的,謝謝!它會永遠被棄用嗎?我現在使用最新版本,併成功設置了API。未來會有這樣的官方API嗎?要麼? – FooBar
https://developers.google.com/google-apps/contacts/v3/terms –
有沒有人已經在新庫中實現了這個功能?我正在嘗試提出「自定義」請求,但我還沒有成功:https://github.com/google/google-api-php-client/issues/446 – user1226868