共通仕様 / 短縮 URL
メッセージ本文に含まれる URL を短縮 URL に置き換える機能です。どのプロダクトから使っても検知と置換の挙動は同じです。
検知は変数置換({{name}} など)が行われた後の文字列に対して実行されます。
指定できる場所
どのエンドポイントで指定できるかはプロダクトごとに異なります。 指定するリクエスト項目と指定できるエンドポイントは、各プロダクトのドキュメントを参照してください。
| プロダクト | 指定できる場所 |
|---|---|
| SMS/RCS | 即時配信のみ(配信予約にはこの設定がありません) |
検知の方式
url_shortening_strategy で、本文のどの部分を URL として検知するかを選びます。
| 値 | 対象 |
|---|---|
TAGGED_ONLY(既定) | [[ と ]] で囲んだ URL だけ |
AUTO_DETECT | 本文中の http(s):// 始まりの URL 全部 |
TAGGED_ONLY を推奨します。 AUTO_DETECT は日本語を含む URL を検出できず、末尾の記号を巻き込みます。
TAGGED_ONLY(既定)
[[ と ]] で囲まれた http(s):// 始まりの文字列だけを短縮対象とします。マーカーは置換時に除去されます。マーカー内が URL でない場合(例: [[お知らせ]])はマーカーごと原文のまま残ります。
| 入力 | 出力 |
|---|---|
詳細 [[https://example.com/c?id=1]] | 詳細 https://shorti.ly/XXXXXX |
確認 [[ https://example.com/trim ]] | 確認 https://shorti.ly/XXXXXX(マーカー内前後スペースは除去) |
[[お知らせ]] https://example.com | [[お知らせ]] https://example.com(URL でないマーカーはそのまま。マーカー外の URL も短縮されない) |
[[https://日本語.com/歴史/]]をご覧ください | https://shorti.ly/XXXXXXをご覧ください(マーカーで境界が明示されるため日本語 URL も対応可) |
AUTO_DETECT
本文中の http(s):// 始まりの URL を自動検出してすべて短縮対象とします。URL の終端は次のルールで判定されます。
- 非 ASCII 文字(日本語・絵文字・中韓文字等)で終端
- 半角スペース・改行・タブで終端
- 末尾が
.,;:!?)}]の場合、その文字は短縮 URL の対象から除外(URL の途中に現れた場合は除去しない)
| 入力 | 検出される URL | 出力 |
|---|---|---|
詳細 https://example.com/path をご覧ください | https://example.com/path(半角スペースで終端) | 詳細 https://shorti.ly/XXXXXX をご覧ください |
詳細はhttps://example.com/infoをご確認ください | https://example.com/info(日本語で終端) | 詳細はhttps://shorti.ly/XXXXXXをご確認ください |
ご案内:https://example.com/page。またhttps://example.com/other! | https://example.com/page, https://example.com/other(2 件を個別検出、末尾 ! は除外) | ご案内:https://shorti.ly/XXXXXX。またhttps://shorti.ly/YYYYYY! |
https://example.com と https://example.com/path | https://example.com, https://example.com/path(prefix 関係でも個別に短縮) | https://shorti.ly/XXXXXX と https://shorti.ly/YYYYYY |
確認 https://xn--wgv71a309e.jp/%E6%AD%B4%E5%8F%B2/ をどうぞ | https://xn--wgv71a309e.jp/%E6%AD%B4%E5%8F%B2/(Punycode ドメイン + パスのパーセントエンコードを検出) | 確認 https://shorti.ly/XXXXXX をどうぞ |
詳細 [[https://example.com/path]] をどうぞ | https://example.com/path(AUTO_DETECT では [[ ]] はマーカー扱いされず本文として残る。末尾 ] は除外ルールで剥がされる) | 詳細 [[https://shorti.ly/XXXXXX]] をどうぞ |
共通の挙動
- 重複 URL の排除 … 同一 URL が本文中に複数回出現する場合、短縮 URL の払い出しは 1 回だけ行われ、すべての出現箇所が同じ短縮 URL に置換されます
- 制御文字の扱い … ASCII 制御文字(
\x00〜\x1f)は URL の一部として扱いません
注意事項
- 日本語を含む URL は検出対象外 … 非 ASCII 文字を含む URL(例:
https://日本語.com/歴史/)はAUTO_DETECTでは正しく検出できません。ドメインを Punycode、パスをパーセントエンコードに変換して渡すか、TAGGED_ONLYを利用してください - 末尾記号の巻き込み … 末尾が
.,;:!?)}]のいずれかで終わる URL は、その 1 文字が短縮対象から除去されます(例:https://example.com/{id}→.../{idとして検出)。これらの記号を URL の一部として含めたい場合はTAGGED_ONLYを利用してください - スペース推奨 … 日本語テキストと URL を隣接させる運用では、巻き込みを避けるために URL の前後に半角スペースまたは改行を入れることを推奨します
ハイパーリンクの巻き込み
スマートフォンの SMS アプリ(特に Google Messages)は、短縮 URL の前後に文字が隣接していると URL の境界を誤認識し、ハイパーリンクが壊れる場合があります。[[]] マーカーの前後にスペースや改行を入れておけば防げます。もしくは boundary_strategy で調整してください。
| 値 | 挙動 |
|---|---|
NEVER(既定) | 短縮 URL の前後に半角スペースを挿入しない |
AUTO | マーカーの前後の文字をそれぞれ判別し、半角スペース・全角スペース・改行・タブ・文字列の先頭/末尾でない場合のみ半角スペースを挿入する |
ALWAYS | 常に短縮 URL の前後に半角スペースを挿入する |
改行を ⏎ で表記した例です。
| 入力 | boundary_strategy | 出力 | 備考 |
|---|---|---|---|
Hello[[https://example.com]]world | NEVER | Hellohttps://shorti.ly/XXXXXXworld | 英字が巻き込まれる |
Hello[[https://example.com]]world | AUTO | Hello https://shorti.ly/XXXXXX world | |
Hello[[https://example.com]]world | ALWAYS | Hello https://shorti.ly/XXXXXX world | |
本文 [[https://example.com]] 本文 | AUTO | 本文 https://shorti.ly/XXXXXX 本文 | |
案内⏎[[https://example.com]]⏎どうぞ | AUTO | 案内⏎https://shorti.ly/XXXXXX⏎どうぞ | 改行は境界のため挿入なし |
[[https://example.com]] | AUTO | https://shorti.ly/XXXXXX | 文頭・文末は境界のため挿入なし |
TAGGED_ONLY のときのみ有効です。 url_shortening_strategy が AUTO_DETECT の場合、boundary_strategy は無視されます。