share facebook facebook facebook twitter twitter menu hatena pocket slack

2020.11.30 MON

PHPでSORACOM APIを呼び出す

西田 駿史

WRITTEN BY 西田 駿史

SORACOMのAPIをPHP(Guzzle)を使って呼び出してみます。

SAMを用意する

ユーザーコンソールからAPIを実行するためのSAM(SORACOM Access Management)ユーザーを用意します。

ユーザーを作成して権限設定、認証情報を作成しましょう。
AWSのIAMと同じような感じです。

発行した認証キーIDと認証キーシークレットはAPI呼び出しに必要になります。

PHPからAPIを呼び出す

Guzzleをインストール

HTTPクライアントのGuzzleをインストールします。

composer require guzzlehttp/guzzle

APIを呼び出す

最初にauthAPIに認証キーIDと認証キーシークレットを渡して、APIキーとAPIトークンを取得する必要があります。
他のAPIはすべて、取得したAPIキーとAPIトークンをリクエストヘッダに含めてリクエストしなければいけません。

下記のサンプルでは、最初にauthAPIを呼び出して次にLatestBillingAPIを呼び出しています。

exec.php

<?php
require 'vendor/autoload.php';

use GuzzleHttp\Client;
use GuzzleHttp\Exception\ClientException;

const BASE_URL = 'https://api.soracom.io/v1/';

$credential = [
    'authKeyId' => 'keyId-************************',
    'authKey' => 'secret-*****************************************',
];

$httpClient = new Client();

// APIキーとAPIトークンを取得
$url = BASE_URL . 'auth';
try {
    $response = $httpClient->request('POST', $url, [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => $credential,
    ]);
} catch (ClientException $e) {
    throw $e;
}
$body = $response->getBody();
$info = json_decode($body, true);
$apiKey = $info['apiKey'];
$operatorId = $info['operatorId'];
$userName = $info['userName'];
$token = $info['token'];

// LatestBillingAPIの呼び出し
$url = BASE_URL . 'bills/latest';
try {
    $response = $httpClient->request('GET', $url, [
        'headers' => [
            'Accept' => 'application/json',
            'X-Soracom-API-Key' => $apiKey,
            'X-Soracom-Token' => $token,
        ],
    ]);
} catch (ClientException $e) {
    throw $e;
}
$body = $response->getBody();
echo $body;

実行結果は次のようになります。

>php exec.php
{"lastEvaluatedTime":"20200317003205","amount":0}

参考

API リファレンス

元記事はこちら

PHPでSORACOM APIを呼び出す

西田 駿史

西田 駿史

2019年4月入社。第四開発事業部グループリーダー。海岸オフィス所属

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。