SUPPORT.TWILIO.COM END OF LIFE NOTICE: This site, support.twilio.com, is scheduled to go End of Life on February 27, 2024. All Twilio Support content has been migrated to help.twilio.com, where you can continue to find helpful Support articles, API docs, and Twilio blog content, and escalate your issues to our Support team. We encourage you to update your bookmarks and begin using the new site today for all your Twilio Support needs.

SMSとVoice通話のログをエクスポートする

本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件の通話記録をログから検索するには:

  1. 下記のURLをテキストエディタにコピーする:
    https://api.twilio.com/2010-04-01/Accounts/AC12345/Calls.csv?PageSize=1000
  2. 'AC12345' は偽のAccount SIDです。, お客様のAccount SIDに置き換えてください。
  3. 修正したURLをテキストエディタからブラウザのURLバーに貼り付け、"Enter "キーを押します。
  4. 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に変換する必要があります。

Have more questions? Submit a request
Powered by Zendesk