1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

IDCFクラウドのビリングAPIをpythonで利用する方法

Last updated at Posted at 2017-11-08

#はじめに
IDCFクラウドのビリングAPIをpython3で利用したかったのですが、
公式HPにはrubyのサンプルコードしかなかったので色々検索したのですが見つけられませんでした。
python3もやり始めたばかりということもあり、お勉強のために書いてみたコードです。
あと公式ドキュメントのAPIリクエスト方法だけだとよくわから・・・(ゲフンゲフン)
ワンライナーで記載可能な部分もありますが、あえて分解して自分がわかりやすいように書いています。
デバッグに利用していたprint文もそのままです(笑)

#事前準備
1.IDCFクラウド管理コンソールにログインします。
2.右上のアカウントをクリックし、アカウント設定をクリックします。
idcf-api.png
3.APIをクリックし、APIキーとSecretkeyをメモします。
001.PNG
4.下にスクロールし、ビリングのAPIエンドポイントを確認します。
002.PNG
5.環境変数にAPIキーとSECRETキーをセットします。

export IDCF_APIKEY=確認したAPIキー
export IDCF_SECRETKEY=確認したシークレットキー

#書いたコード
下記内容で、idcf.pyとして今回保存しました。
importで利用しているライブラリについては適宜pip等でインストールしてください。

# -*- conding:utf8 -*-

import os
import json
import requests
import hashlib,hmac
import time
import base64

METHOD='GET'
QUERY_STRING = 'format=json'
APIKEY=os.getenv("IDCF_APIKEY")
SECRET_KEY=os.getenv("IDCF_SECRETKEY")
ENDPOINT='https://your.idcfcloud.com'
ENDPOINT_URI='/api/v1/billings/history'
EXPIRATION_SECONDS = 30

expiration = int(time.time()) + EXPIRATION_SECONDS
#print(expiration)

message = METHOD + "\n" + ENDPOINT_URI + "\n" + APIKEY + "\n" + str(expiration) + "\n" + QUERY_STRING
secret = SECRET_KEY

signature=hmac.new(bytes(secret, 'ascii'), bytes(message, 'ascii'), hashlib.sha256).digest()
sig=base64.b64encode(signature)

head = {'X-IDCF-APIKEY': APIKEY, \
        'X-IDCF-Expires' : str(expiration), \
        'X-IDCF-Signature' : str(sig,'utf-8') }
#print(head)
#URL生成
uri = ENDPOINT + ENDPOINT_URI + '?' + QUERY_STRING
res = requests.get(uri, headers=head)
data = res.json()
print(json.dumps(data,sort_keys=True,indent=4,separators=(',', ': ')))

#実行

python3.6 idcf.py

##出力結果

{
    "data": [
        {
            "billing_amount": 0,
            "month": "2017-11",
            "payment_status": 1
        },
        {
            "billing_amount": 0,
            "month": "2017-10",
            "payment_status": 3
        },
        {
            "billing_amount": 0,
            "month": "2017-09",
            "payment_status": 3
        },
        {
            "billing_amount": 0,
            "month": "2017-08",
            "payment_status": 3
        },
        {
            "billing_amount": 0,
            "month": "2017-07",
            "payment_status": 3
        },
        {
            "billing_amount": 0,
            "month": "2017-06",
            "payment_status": 3
        },
        {
            "billing_amount": 0,
            "month": "2017-05",
            "payment_status": 3
        },
        {
            "billing_amount": 0,
            "month": "2017-04",
            "payment_status": 3
        },
        {
            "billing_amount": 54,
            "month": "2017-03",
            "payment_status": 3
        },
        {
            "billing_amount": 54,
            "month": "2017-02",
            "payment_status": 3
        },
        {
            "billing_amount": 54,
            "month": "2017-01",
            "payment_status": 3
        },
        {
            "billing_amount": 54,
            "month": "2016-12",
            "payment_status": 3
        },
        {
            "billing_amount": 54,
            "month": "2016-11",
            "payment_status": 3
        },
        {
            "billing_amount": 355,
            "month": "2016-10",
            "payment_status": 3
        },
        {
            "billing_amount": 378,
            "month": "2016-09",
            "payment_status": 3
        },
        {
            "billing_amount": 378,
            "month": "2016-08",
            "payment_status": 3
        },
        {
            "billing_amount": 0,
            "month": "2016-07",
            "payment_status": 3
        },
        {
            "billing_amount": 0,
            "month": "2016-06",
            "payment_status": 3
        },
        {
            "billing_amount": 0,
            "month": "2016-05",
            "payment_status": 3
        },
        {
            "billing_amount": 0,
            "month": "2016-04",
            "payment_status": 3
        },
        {
            "billing_amount": 0,
            "month": "2016-03",
            "payment_status": 3
        },
        {
            "billing_amount": 0,
            "month": "2016-02",
            "payment_status": 3
        },
        {
            "billing_amount": 0,
            "month": "2016-01",
            "payment_status": 3
        },
        {
            "billing_amount": 0,
            "month": "2015-12",
            "payment_status": 3
        },
        {
            "billing_amount": 0,
            "month": "2015-11",
            "payment_status": 3
        }
    ],
    "meta": {
        "account_id": "7100XXXXXXX0",
        "updated_at": "2017-11-08T02:27:37+09:00"
    }
}

毎月の支払い履歴を確認することができました!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?