ConoHaのAPIに触れたいな。とふと思いPHPで触ったのでそれのメモ。。
まず最初にAPIを使用するためのトークンを取得する必要があるとのことで、トークン発行[公式DOC]を見て下記のコードを作成。
ユーザ名、パスワード、テナントIDはConoHaのコントロールパネルで確認して変数にした。
トークン取得
<?php /** * トークン取得 */ function getToken($username, $password, $tenantId) { $url = "https://identity.tyo1.conoha.io/v2.0/tokens"; $headers = array( "Accept: application/json" ); $req_data = array( "auth" => array( "passwordCredentials" => array( "username" => $username, "password" => $password ), "tenantId" => $tenantId ) ); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($req_data)); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); $res_json = curl_exec($curl); $res_data = json_decode($res_json); curl_close($curl); return $res_data; }
今回は取り敢えずとして請求データ一覧取得-公式DOCを実装しようと思う。
トークンとテナントIDを使用して取得した。
支払い情報一覧取得
<?php /** * 請求データ一覧取得 */ function getPayList($token, $tenantId) { $url = "https://account.tyo1.conoha.io/v1/{$tenantId}/billing-invoices?limit=3"; $headers = array( "Accept: application/json", "X-Auth-Token: {$token}" ); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET'); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($curl); return $response; }
上記のコードで取得できるデータは直近3回分の支払い情報なのでjson_decodeで配列に直し、最新のデータから支払い金額だけを取得して表示するようにした。 最新の支払い金額取得
<?php /** * 最新の支払い金額を表示する */ // トークン取得 $tokens = getToken($username, $password, $tenantId); $token = $tokens->access->token->id; // 支払い情報一覧取得 $pays = getPayList($token, $tenantId); $array = json_decode($pays); // 一番最近の支払い金額を表示 print_r($array->billing_invoices[0]->bill_plus_tax);