-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathgetToken.php
46 lines (39 loc) · 1.46 KB
/
getToken.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
use Monolog\Logger;
use Symplicity\Outlook\Token;
// Get Authorization Url
$tokenAdapter = new Token('{{clientId}}', '{{clientSecret}}');
$url = $tokenAdapter->getAuthorizationUrl([
'user_id' => '{{userId}}'
], '{{redirectUrl}}');
// Initialize token handler using the client-id and client-secret
$tokenHandler = new Token('{{clientId}}', '{{clientSecret}}', [
'logger' => new Logger('symplicity_outlook_sync')
]);
// Get token
// Access token has a short lifespan, refresh token is valid for a longer period which allows you to
// get a new access token
// Use the refresh token method to get the new access token
try {
$token = $tokenHandler->request('{{code_received_from_authorization_url}}', '{{redirect_url}}');
// Get Required Info
$accessToken = $token->getAccessToken();
$refreshToken = $token->getRefreshToken();
$expiresOn = $token->getExpiresIn();
$email = $token->getEmailAddress();
$name = $token->getDisplayName();
} catch (\Exception $e) {
// Use logger to handle exception and retry.
}
// Refresh Token
try {
$token = $tokenHandler->refresh('{{refresh_token_stored_in_persistent_db}}', '{{redirect_url}}');
// Get Required Info
$accessToken = $token->getAccessToken();
$refreshToken = $token->getRefreshToken();
$expiresOn = $token->getExpiresIn();
$email = $token->getEmailAddress();
$name = $token->getDisplayName();
} catch (\Exception $e) {
// Use logger to handle exception and retry.
}