-
Notifications
You must be signed in to change notification settings - Fork 1
/
rest.php
executable file
·73 lines (53 loc) · 2.09 KB
/
rest.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
<?php
function rest($method,$arg="",$oToken="",$oauth_token_secret="") {
$rest_url = "https://api.flickr.com/services/rest";
$mt = microtime();
$rand = mt_rand();
$oauth_nonce = md5($mt . $rand);
$timestamp = gmdate('U'); //It must be UTC time
$cc_key = "d62ac97b3cad4fed3e069c9229c408b1";
$cc_secret = "e18e6aad977f1d58";
$sig_method = "HMAC-SHA1";
$oversion = "1.0";
if($oToken == "") {
$oToken = $_SESSION['oauth_token'];
}
if($oauth_token_secret == "") {
$oauth_token_secret = $_SESSION['oauth_token_secret'];
}
$basestring = "format=json&method=$method&nojsoncallback=1&oauth_consumer_key=$cc_key&oauth_nonce=$oauth_nonce&oauth_signature_method=HMAC-SHA1&oauth_timestamp=$timestamp&oauth_token=$oToken&oauth_version=$oversion";
$basestring = "GET&".urlencode($rest_url)."&".urlencode($basestring);
$hashkey = $cc_secret."&".$oauth_token_secret;
$oauth_signature = base64_encode(hash_hmac('sha1', $basestring, $hashkey, true));
// echo $basestring;
// echo "\n";
// echo "========";
// echo "\n";
$fields = array(
"nojsoncallback" => 1,
"oauth_nonce" => $oauth_nonce,
"format" => "json",
"oauth_consumer_key" => $cc_key,
"oauth_timestamp" => $timestamp,
"oauth_signature_method" => "HMAC-SHA1",
"oauth_version" => $oversion,
"oauth_token" => $oToken,
"oauth_signature" => $oauth_signature,
"method" => $method
);
$fields_string = "";
foreach($fields as $key=>$value) $fields_string .= "$key=".urlencode($value)."&";
$fields_string = rtrim($fields_string,'&');
$url = $rest_url."?".$fields_string."&".$arg;
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$file_contents = curl_exec($ch);
curl_close($ch);
// echo $file_contents;
return json_decode($file_contents,true);
}