iOS には URL 短縮機能が標準搭載されておらず、Safari の共有シートはフルアドレスをそのままコピーします。解決策はショートカットアプリです。今見ている URL を受け取り、短縮ツールの API に送信し、ショートリンクをクリップボードに置く、4アクションのショートカットを作ります。3分のセットアップを終えれば、リンクを共有できるあらゆるアプリから2タップで済みます。
これは、デスクトップとダッシュボードでの方法を扱うURL を短縮する方法のスマートフォン版です。自分のスマートフォンではなく、開発中のアプリの中で同じことをしたい場合は、JavaScript と Python のウォークスルーが、同じ API 呼び出しをコードで解説しています。
始める前に必要なものは1つだけです。API キーです。REST API を持つ短縮ツールであればどれでも動作します。以下のフィールド名は Elido のものであり、無料 URL 短縮ツール API の概要がリクエストの形式を説明しています。
ショートカットを作る: 4つのアクション
ショートカットアプリを開き、プラスをタップして、以下の順にアクションを追加します。
1. URL を受け取る。 ショートカットの詳細パネル(情報ボタン)で、共有シートに表示をオンにし、受け取る入力を URL のみに設定します。この最後の部分が重要です。「すべて」のままにしておくと、写真を共有したときにもショートカットが表示されてしまい、ノイズになります。
2. URL の内容を取得。 送信先を https://api.elido.app/v1/links に設定し、矢印を開いてオプションを展開します。
- 方法: POST
- ヘッダ:
Authorization=Bearer YOUR_API_KEY、Content-Type=application/json - リクエスト本文: JSON。フィールドは
destination_urlの1つで、その値はショートカットの入力変数です
3. 辞書の値を取得。 前のアクションの出力から、キー short_url を取得します。レスポンスはすでにパース済みなので、JSON を手動で処理するステップは不要です。
4. クリップボードにコピー。 確認が欲しい場合はその後に通知を表示を追加してください。追加しないと、ショートカットは無言で実行され、うまくいったのかどうか分かりにくくなります。
短い名前を付けましょう。その名前が共有シートでタップする名前になり、Siri に話しかける言葉にもなります。
設定先のキーがまだない場合は、無料プランで作成し、ヘッダーフィールドに貼り付ければ、ショートカットは初回実行から動作します。
使ってみる
Safari でページを開き、共有を押し、自分のショートカットまでスクロールしてタップします。ショートリンクはクリップボードに入っているので、貼り付けたい場所に貼り付けます。
共有シートを提供するあらゆる場所から動作します。それは iOS のほとんどの場面に当てはまります。メール、メモ、App Store、共有アルバムのリンクを持つ写真、サードパーティ製ブラウザ、ほとんどのリーダーアプリなどです。共有シートとの連携の詳細は Apple のショートカットユーザガイドに記載されており、他の自動化から呼び出したい場合はURL スキームからショートカットを実行することもできます。
基本版が動くようになったら、追加する価値のある改良が2つあります。
- UTM タグの自動付与。 API 呼び出しの前に、ショートカットの入力に
?utm_source=…&utm_medium=…を付け足すテキストアクションを挿入し、そのテキストをdestination_urlとして渡します。こうすれば、スマートフォンからシェアするすべてのリンクに、デスクトップで作成したものと同じタグが付き、これがきれいなレポートとタグなしトラフィックの山との違いになります。チームで維持できる命名ルールについてはUTM 命名規則を参照してください。 - 自分で選ぶスラグ。 ランダムな末尾ではなく読みやすいバックハーフにしたい場合は、JSON 本文に2つ目のフィールドを追加します。それがどこに表示されるかはカスタムバックハーフとはで説明しています。
うまくいかないとき
失敗するほぼすべての実行は、2つのミスが原因です。
1つ目は、URL の内容を取得アクションが GET のままになっているケースです。デフォルトは GET で、方法の行は見落としやすく、API は 404 や 405 を返しますが、ショートカットはそれを役に立たないエラーとして表示するだけです。
2つ目は、リクエスト本文が JSON ではなく Form に設定されているケースです。Form は application/x-www-form-urlencoded を送信するため、API はそこから送信先を読み取れず、サーバー側の問題に見える 400 が返ってきます。
両方とも正しいのにまだ失敗する場合は、URL の内容を取得の直後にクイックルックアクションを追加してください。生のレスポンスが表示され、API のエラーメッセージには通常、問題のあったフィールド名が示されています。
正直なところ、他の選択肢
ショートカットは唯一の方法ではなく、常に正解というわけでもありません。
月に1回程度しかリンクを短縮しないなら、Safari で短縮ツールのサイトを開いて貼り付けるだけで十分で、セットアップの手間もかかりません。週に1回のペースなら、ショートカットの3分は2週間以内に元が取れます。そして、たまにリンクを共有するのではなくキャンペーンを管理しているなら、フォルダ・タグ・クリック数レポートを備えたダッシュボードのほうがスマートフォンより適しています。モバイルアプリなら、本格的なリンク管理機能を備えたまま同じ範囲をカバーできます。
セキュリティについて一つ。API キーはショートカットの内部に存在するため、ショートカット自体を認証情報として扱ってください。共有 iCloud リンクや公開ギャラリーには公開せず、同僚が欲しがった場合はファイルそのものではなく手順を渡し、各自で自分のキーを貼り付けてもらいましょう。API がスコープの指定に対応している場合は、リンク作成のみに絞ったキーを使ってください。
コーナーストーンシリーズを読む
この記事はチュートリアルクラスターに含まれます。一般的な方法はURL を短縮する方法、計測面はリンククリックの追跡方法、そしてショートカットが送信しているリクエストは無料 URL 短縮ツール APIで解説しています。
ブログの関連記事
よくある質問
iPhone で URL を短縮するにはどうすればいいですか?
ショートカットアプリで、URL を受け取り、短縮ツールの API に POST し、レスポンスから short_url を読み取ってクリップボードにコピーする、4アクションのショートカットを作成します。共有シートに表示をオンにすれば、Safari やリンクを共有できるあらゆるアプリから2タップで実行できるアクションになります。
iPhone に URL 短縮機能は標準で搭載されていますか?
いいえ。iOS にはシステム標準の短縮機能はなく、Safari の共有シートはフル URL をそのままコピーします。ショートカットアプリはこれを補う標準の方法で、任意の HTTP API を呼び出し、サードパーティアプリを介さずに結果をクリップボードに置くことができます。
アプリなしで iPhone でリンクを短縮できますか?
はい、Safari で短縮ツールのウェブサイトを開き、そこに URL を貼り付ければ可能です。動作はしますが、そのたびにタブの切り替え、貼り付け、コピーの手間がかかります。ショートカットは、たまに以上の頻度でリンクを短縮する人のために、この3ステップを省くために存在します。
ショートカットの方法は API キーにとって安全ですか?
キーはショートカットの内部に保存されるため、ショートカット自体を認証情報として扱ってください。共有 iCloud リンクやショートカットギャラリーに公開せず、リンク作成のみに権限を絞ったキーを使いましょう。同僚とショートカットを共有する場合は、各自で自分のキーを貼り付けてもらってください。
ショートカットが何も返さない、またはエラーになるのはなぜですか?
よくある原因は2つあります。URL の内容を取得アクションが POST ではなく GET に設定されている場合と、リクエスト本文が JSON ではなく Form で送信されている場合です。リクエスト本文が destination_url フィールドを含む JSON になっていること、Authorization ヘッダが Bearer の後にスペースとキーが続く形式になっていることを確認してください。
ショートカットで UTM タグを自動的に追加できますか?
はい。API 呼び出しの前に、受け取った URL にキャンペーンパラメーターを追加するテキストアクションを挿入し、そのテキストを送信先として渡します。これは、スマートフォンからシェアするすべてのリンクに、デスクトップで作成したものと同じタグを確実に付ける、最も簡単な方法です。
Elidoを試す
URLを貼り付けて短縮リンクを取得
登録不要。リンクは30日間有効。永久に保存するには登録してください。
Free、登録不要 · 1日あたり2件