1+ <?php
2+ include 'defines.php ' ;
3+
4+ function getDatabaseConnection () {
5+ try {
6+ $ conn = new PDO ( 'mysql:host= ' . DB_HOST . ';dbname= ' . DB_NAME , DB_USER , DB_PASS );
7+ return $ conn ;
8+ } catch ( PDOException $ e ) {
9+ die ( $ e ->getMessage () );
10+ }
11+ }
12+
13+ function updateAccessToken ( $ accessToken ) {
14+ $ databaseConnection = getDatabaseConnection ();
15+
16+ $ statement = $ databaseConnection ->prepare ( '
17+ UPDATE
18+ config
19+ SET
20+ value = :value
21+ WHERE
22+ id = :id
23+ ' );
24+
25+ $ params = array (
26+ 'id ' => 'access_token ' ,
27+ 'value ' => $ accessToken
28+ );
29+
30+ $ statement ->execute ( $ params );
31+ }
32+
33+ function generateAccessToken () {
34+ $ params = array (
35+ 'grant_type ' => 'client_credentials '
36+ );
37+ $ tokenUri = 'https://us.battle.net/oauth/token ' ;
38+
39+ $ ch = curl_init ();
40+
41+ curl_setopt ( $ ch , CURLOPT_USERPWD , CLIENT_ID . ": " . CLIENT_SECRET );
42+ curl_setopt ( $ ch , CURLOPT_URL , $ tokenUri );
43+ curl_setopt ( $ ch , CURLOPT_POSTFIELDS , http_build_query ( $ params ) );
44+ curl_setopt ( $ ch , CURLOPT_POST , 1 );
45+ curl_setopt ( $ ch , CURLOPT_SSL_VERIFYHOST , false );
46+ curl_setopt ( $ ch , CURLOPT_SSL_VERIFYPEER , false );
47+ curl_setopt ( $ ch , CURLOPT_RETURNTRANSFER , true );
48+
49+ $ response = curl_exec ( $ ch );
50+ curl_close ( $ ch );
51+
52+ $ accessTokenResponse = json_decode ( $ response , true );
53+
54+ if ( isset ( $ accessTokenResponse ['access_token ' ] ) ) { // we have access token
55+ $ status = 'ok ' ;
56+ $ message = 'New access token save and ready for use. ' ;
57+
58+ updateAccessToken ( $ accessTokenResponse ['access_token ' ] );
59+ } else { // no access token
60+ $ status = 'fail ' ;
61+ $ message = 'Something went wrong trying to get an access token. ' ;
62+ }
63+
64+ return array (
65+ 'status ' => $ status ,
66+ 'message ' => $ message ,
67+ 'raw_response ' => $ accessTokenResponse
68+ );
69+ }
0 commit comments