シェルスクリプトを作成する
APIを呼び出す際は、認証のために署名を生成する必要があります。
本チュートリアルでは、署名の生成に、bash、OpenSSL、その他UNIXコマンドを使用します。
1.以下のシェルスクリプトを、「api.sh」という名前で保存します。
#!/bin/bash API_HOST=$1 METHOD=$2 REQUESTURI=$3 if [ "$METHOD" = "POST" -o "$METHOD" = "PUT" ]; then REQUESTBODY=$4 else QUERYSTRING=$4 fi API_ACCESS_KEY=$IIJAPI_ACCESS_KEY API_SECRET_KEY=$IIJAPI_SECRET_KEY CONTENTMD5VALUE="" CONTENTTYPEVALUE="" if [ -n "$REQUESTBODY" ]; then CONTENTTYPEVALUE="application/json; charset=utf-8" fi EXPIRES=`date -u -d '1 hours' +%FT%H:%M:%SZ` STRING_TO_SIGN=string2sign.$$ trap "test -f '$STRING_TO_SIGN' && /bin/rm '$STRING_TO_SIGN'" 0 1 2 3 15 echo $METHOD > $STRING_TO_SIGN echo $CONTENTMD5VALUE >> $STRING_TO_SIGN echo $CONTENTTYPEVALUE >> $STRING_TO_SIGN echo "x-iijapi-expire:${EXPIRES}" >> $STRING_TO_SIGN echo "x-iijapi-signaturemethod:HmacSHA256" >> $STRING_TO_SIGN echo "x-iijapi-signatureversion:2" >> $STRING_TO_SIGN echo -n $REQUESTURI >> $STRING_TO_SIGN SIGNATURE=`openssl dgst -sha256 -binary -hmac "$API_SECRET_KEY" "$STRING_TO_SIGN" | base64` if [ -n "$REQUESTBODY" ]; then curl \ -H "x-iijapi-Expire: ${EXPIRES}" \ -H "x-iijapi-SignatureMethod: HmacSHA256" \ -H "x-iijapi-SignatureVersion: 2" \ -H "Authorization: IIJAPI ${API_ACCESS_KEY}:${SIGNATURE}" \ -H "Content-Type: ${CONTENTTYPEVALUE}" \ -X $METHOD \ -d "$REQUESTBODY" \ -w '\n' \ https://${API_HOST}${REQUESTURI} elif [ -n "$QUERYSTRING" ]; then curl \ -H "x-iijapi-Expire: ${EXPIRES}" \ -H "x-iijapi-SignatureMethod: HmacSHA256" \ -H "x-iijapi-SignatureVersion: 2" \ -H "Authorization: IIJAPI ${API_ACCESS_KEY}:${SIGNATURE}" \ -X $METHOD \ -w '\n' \ https://${API_HOST}${REQUESTURI}?${QUERYSTRING} else curl \ -H "x-iijapi-Expire: ${EXPIRES}" \ -H "x-iijapi-SignatureMethod: HmacSHA256" \ -H "x-iijapi-SignatureVersion: 2" \ -H "Authorization: IIJAPI ${API_ACCESS_KEY}:${SIGNATURE}" \ -X $METHOD \ -w '\n' \ https://${API_HOST}${REQUESTURI} fi
補 足
- 認証・リクエストの署名について詳しくは、各API仕様書の「認証・リクエストの署名」をご覧ください。
例えば、DOMAIN-APIリファレンスの場合は、「API利用方法」>「認証・リクエストの署名」をご覧ください。