ユーザ用ツール

サイト用ツール


サイドバー



最近の更新



Tag Cloud

タグ数量
9
10
1
3
1
2
17
7
1
1
4
13
4
1
2
314
1
9
2
7
21
5
1
31
3
3
1
6
1
1
46
1
3
3
1
1
1
1
1
1
33
46
7
9
10
8
10
3
21
2
9
2
2
6
9
1
1
6
12
4
3
3
2
1
8
2
4
1
6
30
2
12
5
3
1
1
2
3
2
1
3
4
3
3
4
2
2
1
1
2
1
2
1
2
1
27
2
1
3
2
2
1
1
2
3
17
5
9
1
1
2
17
2
6
1
2
12
1
3
1
1
4
11
1
6
4
2
7
1
3
3
13
1
4
1
1
10
3
1
17
3
1
5
1
2
1
1
2
9
2
2
3
2
1
3
1
3
1
2
2
2
1
2
6
1
4
3
5
1
3
1
3
3
2
1
1
30
1
3
3
1
1
1
5
5
1
36
2
4
2
1
2
2
3
1
1
1
4
1
2
1
3
1
1
1
2
5
2
5
2
1
1
1
5
3
2
4
6
1
2
2
27
1
1
3
4
1
1
2
1
1
2
1
1
1
1
2
1
1
1
1
1
20
7
1
6
1
1
3
1
2
2
1
2
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
5
2
1
1
2
2
2
1
1
2
1
1
12
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
2
06_virtualization:04_cloudstack:02_simple_php_for_output_api_url

02 API URLを出力するシンプルなPHP

※signature生成時の注意点

  • パラメータ引数は、全て小文字に変換する必要があります。
  • パラメータ引数にスペースが含まれている場合は、「%20」に変換する必要がある。
    rawurlencodeの部分で行っている。 01 URLエンコード(urlencode, rawurlencode)
<?php
 
$api_key = 'API キー';
$sak     = '秘密鍵';
$command  = 'listVirtualMachines';
$url     = 'https://hogehoge.com/client/api?';
 
$params = array(
                'response'        => 'json',
                'command'        => $command,
		        'apikey'        => $api_key,
                );
 
$query_str = '';
ksort($params);
foreach($params as $k => $v){
        $query_str .= urlencode($k) . "=" . rawurlencode($v) . "&";
}
 
$query_str = rtrim($query_str, "&");
 
#echo strtolower($query_str)."\n";
$sig = base64_encode(hash_hmac ( 'sha1' , strtolower($query_str), $sak, true));
 
$final = $url . $query_str . "&signature=" . urlencode($sig);
echo "API URL: $final \n";
?>
06_virtualization/04_cloudstack/02_simple_php_for_output_api_url.txt · 最終更新: 2014/07/04 13:40 by matsui

Yesterday:1564 Today:011 Total:28734