ディープリンク自動化
URLスキームを使ってプログラムから自動化を作成します。
Last updated: April 5, 2026
このページの内容
- 概要
- URL の形式
- パラメータ一覧
- 必須パラメータ
- 基本設定
- エクスポート設定
- 同期の間隔
- HTTP の設定
- データ型ごとの設定
- 通知
- 例
- 基本的な REST API 自動化
- 認証ヘッダー付き
- 特定のメトリクスのみ(ヘルスメトリクス)
- ルートデータ付きワークアウト
- 設定を一通りそろえた例
- CSV 形式の例
- URL エンコード
- ディープリンクのテスト
- Safari から(iOS)
- ターミナルから(macOS / iOS シミュレータ)
- Xcode から
- ショートカットアプリから
- トラブルシューティング
- よくある問題
- URL の長さの制限
- パラメータの優先順位
- ベストプラクティス
- 関連ドキュメント
- サポート
ディープリンク自動化では、URLスキームを使って REST API 自動化をプログラムから作成できます。自動化スクリプト、構成管理、ヘルスデータのエクスポート設定が必要な外部システムとの連携に適しています。
概要
ディープリンク自動化は、カスタム URL スキームを使って、アプリ内で手動で設定を入力せずに REST API 自動化を作成・設定します。ディープリンクの URL を開くと、アプリが指定した設定で新しい自動化を自動的に作成します。
用途の例:
- スクリプトやツールからのプログラムによる自動化のセットアップ
- 自動化の一括設定
- 構成管理システムとの連携
- 外部アプリや Web サイトからの迅速なセットアップ
- テストや開発のワークフロー
主な機能:
- URL スキームによる自動化の作成
- REST API 自動化のすべての設定項目に対応
- 型に沿ったパラメータの検証
- わかりやすいエラーメッセージ
制限事項
- ディープリンクは REST API 自動化のみに対応します(Dropbox、Google Drive などは対象外)
- URL の長さの制限により、非常に長いパラメータ一覧は使えない場合があります
- REST API 自動化に関する制限(バックグラウンド処理、ヘルスデータへのアクセスなど)はすべてそのまま適用されます
URL の形式
ディープリンクの URL は次の構造になります。
com.HealthExport://automation?parameter1=value1¶meter2=value2&...
ベース URL: com.HealthExport://automation
パラメータ: name と url を除くすべてのパラメータは省略可能です。パラメータ名の大文字・小文字は区別されません。
パラメータ一覧
必須パラメータ
url(必須)
- 型: 文字列(有効な URL)
- 説明: ヘルスデータの送信先エンドポイントの URL
- 例:
https://api.example.com/health-data - 注: 有効な HTTP または HTTPS の URL である必要があります
name(必須)
- 型: 文字列
- 説明: 自動化のわかりやすい名前
- 例:
My%20Backend%20API(URL エンコード後: My Backend API) - 注: スペースや特殊文字を含む場合は URL エンコードが必要です
基本設定
format
- 型: 列挙型(
json、csv) - 既定値:
json - 説明: データのエクスポート形式
- 例:
format=jsonまたはformat=csv - 注: CSV 形式を選ぶとデータの集計が自動的に有効になります
enabled
- 型: 真偽値(
true、false、1、0、yes、no) - 既定値:
false - 説明: 作成直後から自動化を有効にするかどうか
- 例:
enabled=true
datatype
- 型: 列挙型(下記のデータ型を参照)
- 既定値:
healthMetrics - 説明: エクスポートするヘルスデータの種類
- 例:
datatype=workouts - 注: 選択できるデータ型は 1 つだけです。設定すると、適切なインクルードフラグが自動的に構成されます。
有効なデータ型:
healthMetrics— ヘルスメトリクス(歩数、心拍数、睡眠など)workouts— 運動・フィットネスのアクティビティsymptoms— 症状や体調ecg— 心電図の記録heartRateNotification— 心拍数の高値・低値の通知stateOfMind— 気分と精神状態のエントリ(iOS 18.0 以降)cycleTracking— 生理周期や生殖に関するヘルスデータmedications— 服薬ログと服薬状況(iOS 26.0 以降)
エクスポート設定
period
- 型: 列挙型
- 既定値:
none - 説明: データをエクスポートする日付の範囲
- 例:
period=today
有効な値:
none— 既定(前日の終日分に加え、当日分を含む)lastsync— 前回の同期以降today— 当日yesterday— 前日previous7days— 過去 7 日間realtime— リアルタイム更新(同期間隔に秒が必要)
interval
- 型: 列挙型
- 既定値:
none - 説明: 時間のグループ化/集計の間隔(
healthMetricsデータ型のときのみ有効) - 例:
interval=hours
有効な値:
none— 既定(集計なし)minutes— 分単位でグループ化hours— 時間単位でグループ化days— 日単位でグループ化weeks— 週単位でグループ化months— 月単位でグループ化years— 年単位でグループ化
注: このパラメータは datatype=healthMetrics のときのみ有効です。CSV 形式では常にデータが集計されます。
aggregatedata
- 型: 真偽値
- 既定値: CSV の場合は
true、JSON の場合はfalse - 説明: データを集計/要約するか(
healthMetricsかつ JSON 形式のときのみ有効) - 例:
aggregatedata=true - 注:
format=csvのときは自動的にtrueになります
aggregatesleep
- 型: 真偽値
- 既定値:
true - 説明: 睡眠データを集計するかどうか
- 例:
aggregatesleep=true
exportversion
- 型: 列挙型(
v1、v2、1、2) - 既定値:
v2 - 説明: エクスポート形式のバージョン
- 例:
exportversion=v2 - 注: バージョン 2 では、ワークアウトデータの拡張やより詳細なメタデータが含まれます
batchrequests
- 型: 真偽値
- 既定値:
false - 説明: 複数のリクエストに分けてデータを送信する(REST API かつ JSON 形式のときのみ有効)
- 例:
batchrequests=true - 注:
format=jsonかつexportDestination=restApiのときのみ有効です
同期の間隔
syncinterval
- 型: 列挙型
- 既定値:
minutes - 説明: 同期の間隔の単位
- 例:
syncinterval=hours
有効な値:
minutes— N 分ごとに同期hours— N 時間ごとに同期days— N 日ごとに同期weeks— N 週ごとに同期seconds—period=realtimeのときのみ有効
注: REST API 自動化では、リアルタイムのエクスポートを使わない限り、minutes、hours、days、weeks のみが有効です。
syncquantity
- 型: 正の整数
- 既定値:
5 - 説明: 同期の間にあける間隔の数
- 例:
syncquantity=10(syncinterval=minutesのときは 10 分ごとに同期) - 注: 0 より大きい必要があります
HTTP の設定
headers
- 型: 文字列(カンマ区切りのキーと値のペア)
- 既定値: なし
- 説明: 認証やメタデータ用の HTTP ヘッダー
- 例:
headers=Authorization,Bearer%20token123,X-API-Key,abc123 - 形式:
key1,value1,key2,value2,... - 注: 値は URL エンコードしてください。各ヘッダーにはキーと値の両方が必要です。
ヘッダーの例:
Authorization, Bearer your-tokenX-API-Key, your-api-keyContent-Type, application/json
requesttimeout
- 型: 整数(60〜86400)
- 既定値:
60 - 説明: リクエストのタイムアウト(秒)
- 例:
requesttimeout=300 - 注: 60 秒から 86400 秒(1 分〜24 時間)の範囲である必要があります
データ型ごとの設定
ヘルスメトリクスの設定
metrics
- 型: 文字列(MetricName の rawValue をカンマ区切り)
- 既定値: 利用可能なすべてのメトリクス
- 説明: 含めるヘルスメトリクス(
healthMetricsデータ型のときのみ有効) - 例:
metrics=Step%20Count,Heart%20Rate,Active%20Energy - 注: MetricName の rawValue を正確に指定してください。省略すると、利用可能なメトリクスがすべて含まれます。
よく使うメトリクス名:
Step CountHeart RateActive EnergyApple Exercise TimeSleep AnalysisWalking + Running Distance
利用可能なメトリクスの一覧は、アプリのメトリクス選択画面を参照してください。
ワークアウトの設定
includeroutes
- 型: 真偽値
- 既定値:
true - 説明: ワークアウトのルートデータを含める(
workoutsデータ型のときのみ有効) - 例:
includeroutes=true
includeworkoutmetadata
- 型: 真偽値
- 既定値:
true - 説明: ワークアウト中に記録されたメトリクス(心拍数、カロリーなど)を含める(
workoutsデータ型のときのみ有効) - 例:
includeworkoutmetadata=true
workoutsmetadatainterval
- 型: 列挙型(
minutes、seconds) - 既定値:
minutes - 説明: ワークアウトメトリクスの時間グループ化(
workoutsかつエクスポートバージョン v2 のときのみ有効) - 例:
workoutsmetadatainterval=seconds - 注:
datatype=workoutsかつexportversion=v2のときのみ有効です
workouttypes
- 型: 文字列(UInt の値をカンマ区切り)
- 既定値: 空(すべてのワークアウト種別)
- 説明: 含めるワークアウト種別(
workoutsデータ型のときのみ有効) - 例:
workouttypes=1,2,3 - 注: HealthKit のワークアウト種別の識別子を使います
通知
notifyonupdate
- 型: 真偽値
- 既定値:
true - 説明: キャッシュされたデータが更新されたときに通知を受け取る
- 例:
notifyonupdate=true
notifywhenrun
- 型: 真偽値
- 既定値:
true - 説明: 自動化が実行されるたびに通知を受け取る
- 例:
notifywhenrun=false
例
基本的な REST API 自動化
com.HealthExport://automation?url=https://api.example.com/health&name=My%20Automation&format=json&enabled=true
指定したエンドポイントに JSON データを送る基本的な自動化を作成します。
認証ヘッダー付き
com.HealthExport://automation?url=https://api.example.com/health&name=Authenticated%20API&format=json&headers=Authorization,Bearer%20your-token-here,X-API-Key,abc123&enabled=true
カスタムの認証ヘッダーを付けた自動化を作成します。
特定のメトリクスのみ(ヘルスメトリクス)
com.HealthExport://automation?url=https://api.example.com/metrics&name=Steps%20and%20Heart%20Rate&format=json&datatype=healthMetrics&metrics=Step%20Count,Heart%20Rate&aggregatedata=true&interval=hours&enabled=true
歩数と心拍数のみを、時間単位で集計してエクスポートする自動化を作成します。
ルートデータ付きワークアウト
com.HealthExport://automation?url=https://api.example.com/workouts&name=Workout%20Export&format=json&datatype=workouts&includeroutes=true&includeworkoutmetadata=true&exportversion=v2&workoutsmetadatainterval=minutes&enabled=true
ルートデータとワークアウト中のメトリクスを含め、エクスポートバージョン 2 でワークアウトをエクスポートする自動化を作成します。
設定を一通りそろえた例
com.HealthExport://automation?url=https://api.example.com/health-data&name=Complete%20Configuration&format=json&datatype=healthMetrics&period=today&interval=hours&aggregatedata=true&aggregatesleep=true&exportversion=v2&syncinterval=hours&syncquantity=2&headers=Authorization,Bearer%20token123&requesttimeout=300&batchrequests=true¬ifyonupdate=true¬ifywhenrun=false&enabled=true
主要なパラメータを一通り設定した包括的な例です。
CSV 形式の例
com.HealthExport://automation?url=https://api.example.com/csv&name=CSV%20Export&format=csv&datatype=healthMetrics&period=yesterday&enabled=true
CSV でエクスポートする自動化を作成します。CSV 形式ではデータの集計が自動的に有効になることに注意してください。
URL エンコード
パラメータの値に特殊文字が含まれる場合は URL エンコードが必要です。よく使うエンコード例:
- スペース:
%20 - カンマ:
%2C - コロン:
%3A - セミコロン:
%3B - 等号:
%3D - アンパサンド:
%26 - プラス:
%2B
例:
- 元の文字列:
My Automation Name - エンコード後:
My%20Automation%20Name
ヘッダーの例:
- 元の文字列:
Authorization, Bearer token123 - エンコード後:
Authorization,Bearer%20token123
ほとんどのプログラミング言語やツールに URL エンコード用の関数があります。
- Swift:
addingPercentEncoding(withAllowedCharacters:) - JavaScript:
encodeURIComponent() - Python:
urllib.parse.quote()
ディープリンクのテスト
Safari から(iOS)
- iOS 端末で Safari を開く
- アドレスバーにディープリンクの URL を入力する
- 「移動」をタップする
- アプリが開き、自動化が作成されるはずです
ターミナルから(macOS / iOS シミュレータ)
xcrun simctl openurl booted "com.HealthExport://automation?url=https://api.example.com/health&name=Test&enabled=true"
Xcode から
ブレークポイントを置くか、デバッガのコンソールで次を実行します。
let url = URL(string: "com.HealthExport://automation?url=https://api.example.com/health&name=Test&enabled=true")!
try DataModel.shared.handleAPIDeepLink(url)
ショートカットアプリから
- 新規ショートカットを作成する
- 「URL を開く」アクションを追加する
- ディープリンクの URL を入力する
- ショートカットを実行する
トラブルシューティング
よくある問題
「Could not parse the URL」
- URL スキームが
com.HealthExport://automationになっているか確認する - パラメータの値が正しく URL エンコードされているか確認する
- パラメータ名の綴りが正しいか確認する(大文字・小文字は区別されません)
「Invalid URL parameter value」
- URL が有効な HTTP/HTTPS か確認する
- URL エンコードが正しいか確認する
- URL に無効な文字が含まれていないか確認する
「Invalid data type」
- データ型の値を正確に指定する:
healthMetrics、workouts、symptoms、ecg、heartRateNotification、stateOfMind、cycleTracking、medications - 綴りを確認する(大文字・小文字は区別されませんが、値は列挙どおりに)
「Invalid sync cadence interval」
- REST API では
minutes、hours、days、weeksのみを使う secondsはperiod=realtimeのときのみ使う
「Aggregation settings are only valid for healthMetrics data type」
aggregatedataとintervalはdatatype=healthMetricsのときのみ有効- これらのパラメータを削除するか、データ型を変更する
「Batch requests are only valid for REST API with JSON format」
batchrequestsはformat=jsonのときのみ有効- 形式を JSON にするか、
batchrequestsを削除する
「Workout settings are only valid for workouts data type」
includeroutes、includeworkoutmetadata、workoutsmetadataintervalはdatatype=workoutsのときのみ有効- データ型をワークアウトにするか、これらのパラメータを削除する
「Metrics parameter is only valid for healthMetrics data type」
metricsはdatatype=healthMetricsのときのみ有効- データ型を変更するか、
metricsを削除する
「Invalid metric name」
- MetricName の rawValue を正確に指定する(例: 「Step Count」「Heart Rate」)
- 綴りと大文字・小文字を確認する
- 有効な名前はアプリのメトリクス選択画面を参照する
「Invalid request timeout」
- 60 秒から 86400 秒の範囲である必要がある
- この範囲内の値を使う
「A name is required for the automation」
nameパラメータが含まれているか確認する- URL デコード後に値が空でないか確認する
URL の長さの制限
非常に長い URL(多くのメトリクスやヘッダーを含む場合など)は、システムの上限を超えることがあります。次の対策を検討してください。
metricsに含めるメトリクスを減らす- ヘッダーの数を減らす
- 可能な範囲でパラメータの値を短くする
- 複雑な設定を複数のシンプルな自動化に分割する
パラメータの優先順位
複数のパラメータが矛盾するとき:
- データ型(
datatype)の選択により、インクルード用のフラグが自動的にリセットされる - CSV 形式(
format=csv)ではaggregatedata=trueが自動的に設定される - リアルタイムの期間(
period=realtime)ではsyncinterval=secondsが必要 - 互いに両立しない組み合わせでは検証エラーが発生する
ベストプラクティス
自動同期(ディープリンクで自動化がトリガーされる場合)
- 端末を充電し、iPhone のミラーリングを使う
- 充電中は iOS がパフォーマンスへの制限を緩めるため、データをより頻繁に同期しやすくなります
- iPhone のミラーリングを使うと、端末はロック解除時と同様に振る舞うため、Health Auto Export がヘルスデータにアクセスして自動アクションを実行しやすくなります
- 端末を充電し、iPhone のミラーリングを使う
特殊文字を含むパラメータの値は必ず URL エンコードする
まずシンプルな URL で試し、徐々に複雑にする
識別しやすい名前を付ける
ディープリンクをプログラムから生成する前に URL を検証する
ディープリンクの解析時はエラーを適切に処理する
ディープリンクを生成するツールを作る場合は形式を文書化する
多くのメトリクスやヘッダーを含める場合は URL の長さに注意する
シミュレータだけでなく実機でもテストする
関連ドキュメント
- REST API 自動化ガイド — REST API 自動化の詳細
- 自動化の概要 — 自動化の一般的な考え方
- 手動エクスポートガイド — 手動でデータをエクスポートする方法
サポート
このガイドにない問題が発生した場合:
- エラーメッセージで、どのパラメータに問題があるか確認する
- URL エンコードが正しいか確認する
- まず最小限の URL で試す
- アプリ内のチャットサポートから問い合わせる