2017-03-04 85 views
1

我正在研究需要權限訪問用戶Google日曆的應用程序。我正在使用PHP客戶端,並且能夠離線訪問這些日曆。我的問題如下:一旦獲得許可,我如何在以後訪問特定用戶的日曆?如何在需要時爲特定用戶(已授予我訪問日曆的權限)創建客戶端對象?Google API離線訪問用戶數據

我已經設法使用Google_Service_Oauth2::USERINFO_EMAIL範圍提取客戶端ID,但我怎樣才能在以後使用它來獲取用戶日曆?那是甚至我應該怎麼做呢,還是我朝着錯誤的方向前進?

回答

1

有幾種方法可以實現這一點。在你的情況下,因爲你只想訪問用戶日曆,那麼你應該包含在你的請求中的範圍是指定的範圍here。您的客戶端配置應該有$client->setAccessType("offline");$client->setApprovalPrompt("force");

允許訪問後,您將返回一個訪問代碼,您可以交換訪問令牌。返回的訪問令牌是您需要保存在數據庫中的訪問令牌。稍後,如果用戶需要使用日曆服務,則只需使用已保存的訪問令牌。

如果您需要代碼細節,那麼請張貼代碼細節,因爲我們無法完全理解您試圖實現什麼,而無需查看您的實現。

以下面的代碼片段爲例。

/* 
* @$accessToken - json encoded array (access token saved to database) 
*/ 

$client = new Google_Client(); 
$client->setAuthConfig("client_secret.json"); 
$client->addScope("https://www.googleapis.com/auth/calendar"); 

$_SESSION["access_token"] = json_decode($accessToken, true); 

$client->setAccessToken($_SESSION['access_token']); 
$service = new Google_Service_Calendar($client); 

//REST OF THE PROCESS HERE 
+0

嗨@Morfinismo,謝謝你的幫助!您能否展示一個代碼示例,說明如何使用該令牌以稍後訪問用戶日曆?我似乎無法弄清楚。 – Cellydy

+0

@凱莉我已經更新了答案。請幫助我來幫助你。請告訴我們你在做什麼,這樣我們可以更好地幫助你。 – Morfinismo