PHPでApple WeatherKit REST API その1

こんにちは。かっぺいです。
iPhoneに入っている標準アプリの天気ですが、意外と精度が良い気がします。
この天気と同じ情報を、iOSアプリなどから簡単に参照することができるようになっています。そのライブラリがWeatherKitと呼びます。
なお、純正アプリでは、注意報や警報を表示することができていますが、iOS26時点でのWeatherKitでは、日本での警報・注意報はサポートされていません。
アメリカなどの場所を指定して取得する場合は、警報などの情報も取得できそうです。

このWeatherKitですが、iOSなどで実行するだけでなく、Webなどで利用できるようにREST APIも用意されています。
これをPHPで利用する方法を2回に分けて記載します。まずは、AppleDeveloperアカウントでの準備です。

前提条件

WeatherKitを利用するためには、AppleDeveloperProgramのメンバーシップ登録が必要です。
個人利用で、年間$99です。
このメンバーシップに月50万回の呼び出しが無料枠として含まれています。
これ以上を実行する場合は、50万回追加ごとにおおよそ$50追加のサブスクリプションが必要となっています。
普通に使う分には、無料枠で問題ないと思います。

ID登録と秘密鍵ファイルの取得

ServiceIDの登録

Developerアカウントのページへサインインして、証明書の管理ページを開きます。

Identifiersの+ボタンをクリックして、登録ページを開きます。

Services IDsを選びます。

Descriptionに名前を入力して、Identifierにユニークな識別名を入力します。この識別名がServiceIDになります。

Registerをクリックして、登録を行います。

登録が完了すると上記のような一覧が表示されます。

秘密鍵ファイルの取得

Keysから証明書の登録を行います。

Key名を入力して、WeatherKitにチェックをつけます。Key名はServiceIDと連動していなくても問題ありません。

Registerをクリックして、登録します。

秘密鍵ファイルのダウンロードが表示されますので、Downloadボタンを押してダウンロードします。
ダウンロードは一回限りですので、ダウンロードに問題があった場合は、Keyを削除してもう一度登録を行なってください。
秘密鍵のデフォルトのダウンロードファイル名は、AuthKey_KeyID.p8となっています。
画面に表示されているKeyIDは、後ほど必要になるので、控えておきます。