-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcli_auth_once.php
executable file
·92 lines (82 loc) · 2.06 KB
/
cli_auth_once.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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?php
$argDefs = [
[
'name' => 'refreshTokenFile',
'keys' => [
'r',
'refresh-token',
],
'default' => '',
],
[
'name' => 'email',
'keys' => [
'email',
'e'
],
'default' => ''
],
[
'name' => 'password',
'keys' => [
'password',
'p'
],
'default' => ''
]
];
$h = getenv('HOME');
if ($h) {
$argDefs[0]['default'] = $h.'/.cache/hwp/refresh-token.txt';
}
$defaults = [
'OAUTH2_LOGIN_URL' => 'https://accounts.google.com/o/oauth2/programmatic_auth',
'OAUTH2_TOKEN_REQUEST_URL' => 'https://accounts.google.com/o/oauth2/token',
'OAUTH2_CLIENT_SECRET' => 'KWsJlkaMn1jGLxQpWxMnOox-',
//'OAUTH2_LOGIN_URL' => 'https://accounts.google.com/o/oauth2/v2/auth',
'OAUTH2_SCOPES' => [
'https://www.googleapis.com/auth/userinfo.email',
'https://www.google.com/accounts/OAuthLogin',
],
'OAUTH2_CLIENT_ID' => '936475272427.apps.googleusercontent.com',
];
$o = [
'password:',
'email:',
'refresh-token:',
];
$options = getopt('p:e:r:', $o);
$config = array_merge($defaults);
foreach ($argDefs as $arg) {
foreach ($options as $k => $v) {
if (array_key_exists('default', $arg)) {
$config[ $arg['name'] ] = $arg['default'];
} else {
$config[ $arg['name'] ] = NULL;
}
if (in_array($k, $arg['keys'])) {
$config[ $arg['name'] ] = $v;
continue 2;
}
}
}
include('vendor/autoload.php');
$session = new Requests_Session();
include('src/Client.php');
try {
$client = new HWP\Client($session, $config);
$authCode = $client->getAuthCode();
$tokenJson = $client->getTokensFromCode($authCode);
$client->saveRefreshToken($tokenJson['refresh_token']);
} catch (Exception $e) {
echo "Error: ".$e->getMessage()."\n";
die(1);
}
function helpText() {
echo "php ./bin/cli_auth_once.php [-e|--email youremail] [-p|--password \"pAssw0rd#\"] \n";
echo "Authenticate to Google and store a long term refresh token.\n";
echo "Parmeters:\n";
echo " -r --refresh-token: The filename to use as refresh token cache.\n";
echo " -e --email: Email for sign-in.\n";
echo " -p --password: Password for sign-in.\n";
}