本FAQでは、SMSとVoice通話をエクスポートする方法を解説します。
分析に関する情報が必要な場合は、メッセージングインサイトまたはコールインサイトをご覧ください。プロジェクトの利用料とメトリックも有用です。
目次
コンソールもしくはAPIでのバルクエクスポート
Twilioでは、ConsoleとAPIからデータを一括エクスポートできます。
Consoleの一括エクスポート機能は、メッセージングでは10,000件以上、音声では2,500件以上の通話記録をエクスポートする最も簡単な方法です。一括エクスポート機能は、Console for MessagingおよびVoiceの以下の場所にあります:
さらに、BulkExport APIは、Twilioプラットフォームからすべてのアクティビティログを継続的に、または単発でダウンロードするための効率的なメカニズムを提供します。詳細については、Bulk Export APIの概要(英語)をご覧ください。
コンソールで、10,000件までのメッセージログをエクスポートする
Twilio Consoleのメッセージログページから、ページ右上の「Export CSV」をクリックすると、最大10,000件のメッセージログレコードをエクスポートできます。
コンソールで、2,500件までの通話ログをエクスポートする
通話ログページにアクセスし、「Export CSV」ボタンをクリックすると、最大2,500件の通話ログをエクスポートできます。
1,000件までのログのエクスポート
過去1000件の通話記録をログから検索するには:
- 下記のURLをテキストエディタにコピーする:
https://api.twilio.com/2010-04-01/Accounts/AC12345/Calls.csv?PageSize=1000
- 'AC12345' は偽のAccount SIDです。, お客様のAccount SIDに置き換えてください。
- 修正したURLをテキストエディタからブラウザのURLバーに貼り付け、"Enter "キーを押します。
-
2つのフィールドの入力を求められます: 「Username」と「Password」です。Username "にはアカウントのSIDを入力します。パスワード "には、お客様のAuth Tokenを入力してください。
通話リスト・リソースへのGETリクエストが完了しました。CSVがダウンロードされているはずです。同じプロセスを繰り返し、代わりに下記のURLを使用することで、SMSログをダウンロードできます:
https://api.twilio.com/2010-04-01/Accounts/AC12345/Messages.csv?PageSize=1000
上記は メッセージリストリソースにGET
リクエストを行います。
検索を絞り込む
上記で行ったリクエストは、プロジェクトからのすべてのコールまたはメッセージをダウンロードします。これらのレコードのサブセットだけを見たいとしたらどうでしょうか?
例えば、以下を確認したいとします。
- あなたのTwilio番号(781) 333-4444への通話のみ
- または2012年6月1日に送信されたすべてのメッセージを見たいとします。
Twilioは、"To"、"From"、"StartTime"(通話の場合)、"DateSent"(SMSメッセージの場合)などのフィルタをサポートしています。このように、クエリーにこれらを追加できます。
https://api.twilio.com/2010-04-01/Accounts/AC12345/Messages.csv?DateSent=2012-06-01&PageSize=1000
すべてのフィルタリングのオプションは下記をご覧ください。
より多くのデータを取得する
Twilio APIから大量のデータをダウンロードする場合は、Twilio CLIまたはTwilio Helper Librariesのいずれかを使用することを強くお勧めします。
BashによるTwilio CLIの例
Twilio CLI で Bash スクリプトを使用すると、少ない環境設定でメッセージのリストをすばやく作成する場合に便利です。Twilio CLIをインストールし、CLI経由でログインしてから、以下のコマンドを実行します:
twilio api:core:messages:list --no-limit --properties="sid,from,to,body,status,direction" \
| while read -r row ; do
echo "$row" >> data.tsv
done
含められるメッセージプロパティの完全なリストについては、Twilioメッセージリソースのドキュメントページを参照してください。
PHP コードサンプル
ここでは、PHP Helper Library を使って SMS のデータを CSV でダウンロードする例を示します。この例でタイムアウトしたり時間がかかったりする場合は、DateSent
フィルタの時間間隔を短くしてみてください。
<?php
/**
* Download the library from: https://github.com/twilio/twilio-php
* Copy the 'Twilio' folder into a directory containing this file.
*/
require __DIR__ . '/Twilio/autoload.php';
use Twilio\Rest\Client;
/* Your Twilio account sid and auth token */
$account_sid = "ACXXXXXXXXX";
$auth_token = "YYYYYYYYYYYY";
/* Download data from Twilio API */
$client = new Client($account_sid, $auth_token);
$messages = $client->messages->stream(
array(
'dateSentAfter' => '2015-05-01',
'dateSentBefore' => '2015-06-01'
)
);
/* Browser magic */
$filename = $account_sid."_sms.csv";
header("Content-Type: application/csv");
header("Content-Disposition: attachment; filename={$filename}");
/* Write headers */
$fields = array( 'SMS Message SID', 'From', 'To', 'Date Sent', 'Status', 'Direction', 'Price', 'Body' );
echo '"'.implode('","', $fields).'"'."\n";
/* Write rows */
foreach ($messages as $sms) {
$row = array(
$sms->sid,
$sms->from,
$sms->to,
$sms->dateSent->format('Y-m-d H:i:s'),
$sms->status,
$sms->direction,
$sms->price,
$sms->body
);
echo '"'.implode('","', $row).'"'."\n";
}
公式のHelper Librariesを使用しない場合は、TwilioのAPIが提供する組み込みのnextpageuri
属性を使用するようにアプリケーションを設計する必要があります。nextpageuri
は、最後に取得したレコードがどの通話またはSMSであったかを追跡するURLであり、ページングプロセスを通じてアプリケーションをガイドするように設計されています。
.CSV形式のnextpageuri
はないので、CSVで非常に最近のレコードを取得する場合は、XMLまたはJSONでレコードを取得し、結果をCSVに変換する必要があります。