-
Notifications
You must be signed in to change notification settings - Fork 0
/
mygeonaute-api.php
70 lines (61 loc) · 2.13 KB
/
mygeonaute-api.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
<?php
// parameters MUST be url encoded.
function connect ($username, $password)
{
$ch = curl_init () ;
$redirect_uri = urlencode ('http://www.mygeonaute.com/en-FR/portal') ;
curl_setopt ($ch, CURLOPT_URL,
'https://account.geonaute.com/oauth/authorize'
. '?response_type=code'
. '&client_id=mygeonaute'
. '&redirect_uri=' . $redirect_uri);
curl_setopt ($ch, CURLOPT_POST, TRUE);
curl_setopt ($ch, CURLOPT_POSTFIELDS,
'client_id=mygeonaute'
. '&redirect_uri=' . $redirect_uri
. '&response_type=code'
. '&email=' . $username
. '&password=' .$password) ;
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie');
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, TRUE) ;
curl_exec ($ch) ;
return $ch ;
}
function activityList ($ch)
{
curl_setopt ($ch, CURLOPT_POST, FALSE) ;
curl_setopt ($ch, CURLOPT_URL,
'http://www.mygeonaute.com/en-FR/portal/activities') ;
$response = curl_exec ($ch) ;
$d = new DOMDocument () ;
$d -> loadHTML ($response) ;
$activities = $d -> getElementById ('activity-timeline') ;
$data_activities = $activities -> getAttribute ('data-activities') ;
return json_decode ($data_activities, TRUE) ;
}
// $activityid MUST be url encoded.
function activity ($ch, $activityid)
{
curl_setopt ($ch, CURLOPT_POST, FALSE) ;
curl_setopt ($ch, CURLOPT_URL,
'http://www.mygeonaute.com/en-FR/portal/activities/'
. $activityid);
$response = curl_exec ($ch) ;
$document = new DOMDocument ();
$document -> loadHTML ($response) ;
$xpath = new DOMXpath ($document) ;
$chart_values = $xpath -> query('//*[@class="chart-value"]') ;
// Put fetched values in an array indexed by data-name
$array = [] ;
foreach ($chart_values as $attr)
{
$name = $attr -> getAttribute ('data-name') ;
if (!isset ($array [$name]))
{
$array [$name] = $attr -> nodeValue ;
}
}
return $array ;
}
?>