こんにちは、katsu.tです。
TwilioのAPIを利用するとき、認証情報として利用することが必須となっているAccount SIDとAuth Token。
実はこの2つの代わりとして、API Keyを発行して利用できることをご存じですか?
Account SIDとAuth Tokenはプロジェクトごとに発行されるものですが、API Keyならサブシステムごとに認証情報を設定して利用できます。
今回の記事では、API Keyの使い方やAPI Keyの発行方法についてご紹介いたします。
Twilio API Keyの使い方
まずはTwilio API Keyの使い方についてご紹介いたします。
REST APIで使用
REST APIでAPIキーを利用する場合は
- user=Account SID
- password=Auth Token
の代わりに
- user=KeySid
- password=KeySecret
として利用することが可能です。
例:
curl -X POST https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID/Calls.json \
--data-urlencode "Url=http://demo.twilio.com/docs/voice.xml" \
--data-urlencode "To=+14155551212" \
--data-urlencode "From=+15017122661" \
-u $TWILIO_KEY_SID:$TWILIO_KEY_SECRET // API Keyを利用
SDKで使用
SDKで利用する場合は、Auth Tokenの代わりに、API Keyを利用することが可能です。
例としてPHPのコードをご紹介いたします。
※他の言語のコードはこちらをご参照ください。
※Node.jsのみ他の言語と多少設定方法が異なるので注意です。
<?php
require_once './vendor/autoload.php'; // Loads the library
use Twilio\Rest\Client;
$sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; // Account Sid
$api_key = "SKXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; // API Key Sid
$api_secret = "your_api_secret"; // API Key Secret
// Clientを初期化
$client = new Client($api_key, $api_secret, $sid);
// 認証情報が正常に設定できているか確認
$accounts = $client--->api->v2010->accounts
->read();
foreach ($accounts as $record) {
print($record->sid);
}
?>
Twilio API Keyの権限について
API Keyには2種類のキータイプがあり、権限がそれぞれ異なります。
必要に応じて使い分けてください。
キータイプ |
API Key、アカウントおよびサブアカウントの管理に関わるAPIの実行権限
|
コンソールを使って作成
|
APIを使って作成
|
Standard |
× |
○ |
○ |
Master |
○ |
○ |
× |
Twilio API Keyの発行方法
API Keyを発行する方法は、「コンソールを利用する」か「APIを利用する」の2種類です。
パターン①コンソールを用いて発行
コンソールを開き、Dashboardの中から設定をクリックします。

設定の中からAPIキーをクリックします。

新しいAPIキーを作成するをクリックします。

任意のわかりやすい名前を入力し、APIキーを作成するをクリックします。

キーが生成されたらSIDとSECRETをメモしておきます。
※この画面を閉じるとSECRETを確認するすべがなくなってしまいます。
キーを控えたら完了しました!にチェックを入れ、終了をクリックしましょう。

終了をクリックしたら、これでAPI Keyの発行は完了となります。

パターン②APIを用いて発行
※APIを利用して発行したAPI KeyのキータイプはStandardとなります。
$ curl -X POST https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID/Keys.json \
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN