概要
Claude Code の登場以降、自分専用の作業スクリプトや小さなアプリを作る機会が増えた。
スマホのブラウザで開いている URL を直接保存・参照したい場面があるが、iPhone から他サービスへ情報を渡すには Share Extension か App Extension の実装が必要になる。
| Share Extension | App Extension |
|---|---|
|
|
どちらも専用アプリの実装が前提で実装コストがかかる。代替として ショートカット アプリで同等のことを実現できたので手順の紹介をします。
iOSのショートカットアプリ
apps.apple.comApple 公式の自動化アプリ。アクションを組み合わせてアプリ操作を自動化でき、「オートメーション」でボタン一つに束ねることもできる。
やりたいこと
- 共有シートから直接 API を実行
- 共有シートで開いている
URLをクエリパラメータとしてサーバーへ渡す
事前準備
- 共有シートの情報を受け取る API を作成し Cloud Functions にデプロイ
- PR: iOSのショートカットと共有の情報を取得するテスト by wheatandcat
以下は検証用の最小コード(Node.js)。受け取ったパラメータをログ出力する。
import functions from "@google-cloud/functions-framework"; /** * iOS Shortcut用のHTTP関数 * @param {Object} req - Express request object * @param {Object} res - Express response object */ functions.http("processRequest", (req, res) => { // CORS設定 res.set("Access-Control-Allow-Origin", "*"); res.set("Access-Control-Allow-Methods", "GET, POST, OPTIONS"); res.set("Access-Control-Allow-Headers", "Content-Type"); if (req.method === "OPTIONS") { res.status(204).send(""); return; } try { let url; if (req.method === "GET") { url = req.query.url; } else if (req.method === "POST") { url = req.body.url; } else { res.status(405).json({ error: "Method not allowed" }); return; } console.log("Request parameters received:"); console.log(`URL: ${url}`); console.log(`Method: ${req.method}`); console.log(`User-Agent: ${req.headers["user-agent"]}`); console.log(`Timestamp: ${new Date().toISOString()}`); if (!url) { console.log("Error: Missing required parameters"); res.status(400).json({ error: "Missing required parameters", required: ["url"], }); return; } res.status(200).json({ success: true, message: "Request processed successfully", receivedData: { url }, timestamp: new Date().toISOString(), }); } catch (error) { console.error("Error processing request:", error); res.status(500).json({ error: "Internal server error", message: error.message, }); } });
動作確認コマンド例。
curl --location 'https://***.cloudfunctions.net/processRequest?url=https%3A%2F%2Ftest.com'
ショートカットの作成
iPhone のショートカットアプリから右上の「+」で新規作成。
※共有シートに出す設定は iPhone からのみ可能(Mac では設定不可)。

名称を共有シートのテストにして保存。

ホームに戻り、作成したショートカットを長押しして 詳細 を開く。

共有シートに表示 を ON にして保存。

以降、共有シートから入力を受け取れるようになる。

ここからは Mac のショートカットアプリでも編集可能。以下のアクションを順に追加。
入力からURLを取得

URLエンコード(GET のクエリに乗せるためエンコード)

URL(Cloud Functions のエンドポイントを指定し、クエリ
url=に「URLエンコード済みのテキスト」を割り当て)

URLの内容を取得(メソッドを GET に設定)

セットアップ完了後、Safari 等で任意のページを開き共有シートを表示。

作成した 共有シートのテスト をタップすると API が実行され、サーバーログに共有元の URL が記録される。

まとめ
専用の Share/App Extension を作らずに、ショートカットだけで共有シート → API 実行を実現 ができる。セキュリティ担保は難しいが、自分専用ツール用途に割り切る前提なら結構便利に使える。


