実際に送信するメッセージ本文を分析する
送信予定の本文について、エンコーディング、エンコード後の長さ、SMSのセグメント数を計算します。このエンドポイントは、SMSの送信、ルートの予約、配信料金の見積もりの返却を行いません。送信ワークフローで追加されるフッター、リンク、配信停止の案内文もすべて含めた、最終的な本文全体を渡してください。
リクエスト
有効なAPIアカウントと、そのアカウントで許可されている送信元IPアドレスを使用して認証してください。認証情報はサーバー側のシークレットストレージに保管してください。UTF-8の文字列をtextフィールドで送信してください。この例では環境変数を使用しています。
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
--data-urlencode 'text=Your message here' \
https://api.multitel.net/v3/smslengthフォームエンコードされた入力に対応しています。次のようなJSONオブジェクトも{"text":"Your message here"}、フォームフィールドもクエリフィールドも指定されていない場合に受け付けられます。メッセージ本文がURLに含まれないよう、POSTの使用を推奨します。フォーム入力とクエリ入力の両方がある場合は、フォーム入力が使用されます。リクエスト形式を混在させないでください。
レスポンス
{
"status": {
"code": "200",
"msg": ""
},
"response": {
"charset": 0,
"encoding": "GSM-7",
"count": 1,
"parts": 1,
"chars": 17,
"units": 17,
"single_limit": 160,
"multipart_limit": 153
}
}| フィールド | 意味 |
|---|---|
| charset | 0はGSM-7、2はUTF-16を表します。 |
| encoding | GSM-7またはUTF-16。 |
| parts, count | 計算されたSMSセグメント数を表す二つの名前です。本文が空の場合は、どちらもゼロになります。 |
| units, chars | エンコード後の単位数を表す二つの名前です。見た目の文字数と一致するとは限りません。 |
| single_limit | 選択されたエンコーディングで、単一セグメントに収まるエンコード後の単位数の上限です。 |
| multipart_limit | 連結用のオーバーヘッドを差し引いた、各セグメントのエンコード後の単位数の上限です。 |
エンコーディングとセグメントの上限
| エンコーディング | 単一セグメント | 複数セグメントに分割する場合の各セグメント |
|---|---|---|
| GSM-7 | 160セプテット | 153セプテット |
| UTF-16 | 70コード単位 | 67コード単位 |
GSM-7の拡張文字である^、波括弧、角括弧、バックスラッシュ、縦棒、チルダ、ユーロ記号などは、それぞれ二セプテットを消費します。GSM-7に含まれない文字があると、メッセージ全体がUTF-16でのカウントに切り替わります。基本多言語面に含まれない絵文字は、UTF-16の二単位を使用します。見た目では一つの絵文字として表示されるシーケンスに、複数のコードポイントが含まれることもあります。
たとえば、160文字の通常のGSM-7の英字は一セグメントに収まりますが、161文字では二セグメントが必要です。八十文字の^は160単位を使用し、一セグメントに収まりますが、八十一文字では162単位を使用し、二セグメントが必要です。基本多言語面外の単純な絵文字三十五個は70のUTF-16単位を使用し、一セグメントに収まりますが、三十六個では72単位を使用し、二セグメントが必要です。結合文字や連結された絵文字によって、これらの数は変わることがあります。
エラーと空の本文
textフィールドがない場合、スカラー値の代わりに配列やオブジェクトを指定した場合、またはUTF-8が不正な場合は、APIコード403が返されます。HTTPステータスに加え、JSONのstatus.codeとstatus.msgも確認してください。このエンドポイントはコードを文字列として返します。空文字列は有効で、単位数とセグメント数はいずれもゼロになります。
送信前に結果を活用する
レビュー対象の計算機能には、メッセージの送信、通信事業者への呼び出し、アカウントからの料金引き落とし処理は含まれていません。結果は渡された本文の分析であり、配信の保証や最終的な請求額ではありません。送信時には、宛先別の料金、通信事業者の手数料、キャンペーンの要件、本文の追加変換が適用されることがあります。メッセージを変更した後は再計算し、承認済みの送信ワークフローとアカウントの最新料金を使用してください。