bfc6ce6220997240df9914154bdfde37bdd200ce
Bernd Wurst API-Authtoken, Idle-Warnung...

Bernd Wurst authored 4 years ago

1) <?php
2) 
Bernd Wurst API-Aufrufe über Guzzle um...

Bernd Wurst authored 1 year ago

3) use GuzzleHttp\Client;
4) use GuzzleHttp\Psr7\Request;
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

5) require_once("config.php");
6) $base_url = $config['api_url'];
Bernd Wurst reuse JWT token

Bernd Wurst authored 1 year ago

7) 
8) $TOKEN_FILE = '../jwt-token.json';
9) $jwt = [
10)     "token" => null,
11)     "refresh_token" => null,
12)     "exp" => time()
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

13) ];
Bernd Wurst API-Authtoken, Idle-Warnung...

Bernd Wurst authored 4 years ago

14) 
Bernd Wurst reuse JWT token

Bernd Wurst authored 1 year ago

15) if (file_exists($TOKEN_FILE)) {
16)     $jwt = json_decode(file_get_contents($TOKEN_FILE), true);
17) }
18) 
Bernd Wurst API-Aufrufe über Guzzle um...

Bernd Wurst authored 1 year ago

19) if ($jwt['refresh_token'] && $jwt['exp'] < time()+5) {
20)     // refresh token
21)     $url = $base_url . 'token/refresh';
22)     $data = ["refresh_token" => $jwt['refresh_token']];
23)     $options = array(
24)       'http' => array(
25)         'method'  => 'POST',
26)         'content' => json_encode( $data ),
27)         'header'=>  "Content-Type: application/json\r\n" .
28)                     "Accept: application/json\r\n"
29)         )
30)     );
31) 
32)     $context = stream_context_create( $options );
33)     $result = @file_get_contents( $url, false, $context );
34)     if (!$result) {
35)         print('Es gibt gerade ein technisches Problem.');
36)         die();
37)     }
38)     $response = json_decode( $result, true);
39) 
40)     $jwt['token'] = $response["token"];
41)     $jwt['refresh_token'] = $response["refresh_token"];
42)     $fields = explode('.', $jwt['token']);
43)     $data = json_decode(base64_decode($fields[1]), true);
44)     $jwt['exp'] = $data['exp'];
45) }
46) 
Bernd Wurst reuse JWT token

Bernd Wurst authored 1 year ago

47) if (!$jwt['token'] || $jwt['exp'] < time()+5) {
48)     // get new token
49)     # init API
50)     $url = $base_url . 'login';
51)     $data = [
52)         "username" => $config['api_username'],
53)         "password" => $config['api_password']
54)     ];
55)     $options = array(
56)       'http' => array(
57)         'method'  => 'POST',
58)         'content' => json_encode( $data ),
59)         'header'=>  "Content-Type: application/json\r\n" .
60)                     "Accept: application/json\r\n"
61)         )
62)     );
63) 
Bernd Wurst API-Aufrufe über Guzzle um...

Bernd Wurst authored 1 year ago

64)     $context = stream_context_create( $options );
65)     $result = @file_get_contents( $url, false, $context );
66)     if (!$result) {
67)         print('Es gibt gerade ein technisches Problem.');
68)         die();
69)     }
Bernd Wurst reuse JWT token

Bernd Wurst authored 1 year ago

70)     $response = json_decode( $result, true);
71) 
72)     $jwt['token'] = $response["token"];
73)     $jwt['refresh_token'] = $response["refresh_token"];
74)     $fields = explode('.', $jwt['token']);
75)     $data = json_decode(base64_decode($fields[1]), true);
76)     $jwt['exp'] = $data['exp'];
77) }
Bernd Wurst API-Authtoken, Idle-Warnung...

Bernd Wurst authored 4 years ago

78) 
Bernd Wurst reuse JWT token

Bernd Wurst authored 1 year ago

79) file_put_contents($TOKEN_FILE, json_encode($jwt));
Bernd Wurst API-Authtoken, Idle-Warnung...

Bernd Wurst authored 4 years ago

80) 
81) 
Bernd Wurst API-Aufrufe über Guzzle um...

Bernd Wurst authored 1 year ago

82) function api_call($method, $url, $content = []) 
83) {
84)     global $jwt;
85)     global $base_url;
86)     $url = $base_url . $url;
87) 
88) 
89)     $headers = [
90)         "Content-Type" => "application/json",
91)         "Accept" => "application/json",
92)         "Authorization" => "Bearer ".$jwt['token']
93)         ];
94)     $body = json_encode( $content );
95)     $client = new Client(["http_errors" => false]);
96)     $request = new Request(strtoupper($method), $url, $headers, $body);
97)     $res = $client->send($request, ['timeout' => 5]);
98) 
99)     if ($res->getStatusCode() >= 500) {
100)         print('Es gibt gerade ein technisches Problem.');
101)         die();
102)     }
103)     //if ($res->getStatusCode() >= 400) {
104)     //
105)     //}
106)     return [
107)         "status_code" => $res->getStatusCode(),
108)         "data" => json_decode( $res->getBody(), true )
109)         ];
110) }
111) 
112) 
113) function old_api_call($method, $url, $content = []) {
Bernd Wurst reuse JWT token

Bernd Wurst authored 1 year ago

114)     global $jwt;
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

115)     global $base_url;
116)     $url = $base_url . $url;
117)     $options = array(
118)       'http' => array(
119)         'method'  => strtoupper($method),
120)         'content' => json_encode( $content ),
121)         'header'=>  "Content-Type: application/json\r\n" .
122)                     "Accept: application/json\r\n" .
Bernd Wurst reuse JWT token

Bernd Wurst authored 1 year ago

123)                     "Authorization: Bearer ".$jwt['token']."\r\n"
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

124)         )
125)     );
Bernd Wurst besserer Debug-Modus, Handh...

Bernd Wurst authored 4 years ago

126) 
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

127)     $context  = stream_context_create( $options );
Bernd Wurst API-Aufrufe über Guzzle um...

Bernd Wurst authored 1 year ago

128)     $result = @file_get_contents( $url, false, $context );
129)     if (!$result) {
130)         print('Es gibt gerade ein technisches Problem.');
131)         die();
132)     }
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

133)     $response = json_decode( $result, true );
134)     return $response;
135) }
Bernd Wurst API-Authtoken, Idle-Warnung...

Bernd Wurst authored 4 years ago

136) 
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

137) require_once('vendor/autoload.php');
Bernd Wurst API-Authtoken, Idle-Warnung...

Bernd Wurst authored 4 years ago

138) 
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

139) function format_number_api($number) {
140)     $phoneNumberUtil = \libphonenumber\PhoneNumberUtil::getInstance();
141)     try {
142)         $phoneNumber = $phoneNumberUtil->parse($number, 'DE');
143)     } catch (Exception $e) {
144)         return NULL;
Bernd Wurst besserer Debug-Modus, Handh...

Bernd Wurst authored 4 years ago

145)     }
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

146)     if ($phoneNumberUtil->isValidNumber($phoneNumber)) {
147)         return $phoneNumberUtil->format($phoneNumber, \libphonenumber\PhoneNumberFormat::E164);
Bernd Wurst API-Authtoken, Idle-Warnung...

Bernd Wurst authored 4 years ago

148)     }
Bernd Wurst Neue API 2023

Bernd Wurst authored 1 year ago

149)     return NULL;