このページには、Google Spectrum Access System(SAS)Portal API のコードサンプルが記載されています。
始める前に
次の例では、次の前提条件を満たしていることを確認してください。
- サービス アカウントを使用してトークンを取得する
TOKEN=$(gcloud auth print-access-token)
。 ${CLIENT_PROJECT}
を Google Cloud プロジェクトのプロジェクト ID に設定します。
現在の顧客を一覧表示する
呼び出し元がアクセスできるすべてのお客様を返します。
curl -X GET -H "X-Goog-User-Project: ${CLIENT_PROJECT}" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ${TOKEN}" \"https://sasportal.googleapis.com/v1alpha1/customers"
返された顧客名を変数として保存します。
CUSTOMER_NAME=customers/...
新しいデバイス構成を作成する
作成するデバイスの
${FCCID}
と${SN}
を設定します。FCCID=f1 SN=sn1
デバイス構成を作成します。
curl -X POST -H "X-Goog-User-Project: ${CLIENT_PROJECT}" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ${TOKEN}" \ "https://sasportal.googleapis.com/v1alpha1/${CUSTOMER_NAME}/devices" \ -d "{ \"fcc_id\": \"$FCCID\", \"serial_number\": \"$SN\", \"preloaded_config\": { \"call_sign\": \"cs1\", \"category\": \"DEVICE_CATEGORY_A\"}}"
このコマンドは、新しく作成されたデバイス構成を返します。
デバイス名を変数として保存します。
DEVICE_NAME=customers/.../devices/...
現在のデバイスを一覧表示する
curl -X GET -H "X-Goog-User-Project: ${CLIENT_PROJECT}" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $TOKEN" \ "https://sasportal.googleapis.com/v1alpha1/${CUSTOMER_NAME}/devices"
デバイスを名前で取得する
curl -X GET -H "X-Goog-User-Project: ${CLIENT_PROJECT}" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $TOKEN" \ "https://sasportal.googleapis.com/v1alpha1/${DEVICE_NAME}"
既存のデバイスを更新する
curl -X PATCH -H "X-Goog-User-Project: ${CLIENT_PROJECT}" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $TOKEN" \ "https://sasportal.googleapis.com/v1alpha1/${DEVICE_NAME}" \
認定プロフェッショナル インストーラ(CPI)の身元と認定資格を確認する
シークレット文字列を生成します。
curl -X POST -H "X-Goog-User-Project: ${CLIENT_PROJECT}" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $TOKEN" \ "https://sasportal.googleapis.com/v1alpha1/installer:generateSecret" \ -d "{}"
出力は次のようになります。
{ "secret": "<generated secret>" }
JSON Web Token 形式を使用して、シークレット文字列を JWT にエンコードします。
以下のとおりに設定します。
${SECRET}
はシークレット文字列に置き換えます。${ENCODED_SECRET}
を JWT 文字列に追加します。${CPI_ID}
は CPI の ID に置き換えます。
CPI の ID と認定を確認します。
curl -X POST -H "X-Goog-User-Project: ${CLIENT_PROJECT}" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $TOKEN" \ "https://sasportal.googleapis.com/v1alpha1/installer:validate" \ -d "{ \"installer_id\": \"${CPI_ID}\", \"secret\": \"${SECRET}\", \"encoded_secret\": \"${ENCODED_SECRET}\" }"
これにより、CPI は、必要なすべてのパラメータが設定された市民向けブロードバンド無線サービス デバイス(CBSD)を設置できるようになります。
マルチステップの CBSD 登録
マルチステップの CBSD 登録は、CPI によって以前に署名されたデバイス パラメータまたは CPI アカウントを使用して行うことができます。
以前に CPI によって署名されたデバイス パラメータ
このサンプルは、CPI によって以前にエンコードされた CBSD インストール パラメータを使用して、非アクティブなデバイス構成を作成する方法を示しています。その結果、CPI 以外のユーザーも構成を作成できるようになります。
- CPI の秘密鍵を使用して CBSD パラメータをエンコードします。JSON Web Token 形式を使用することをおすすめします。
${ENCODED_DEVICE}
を JWT 文字列に、${CPI_ID}
を CPI の ID に設定します。利用していないデバイスの構成を作成します。
curl -X POST -H "X-Goog-User-Project: ${CLIENT_PROJECT}" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ${TOKEN}" \ "https://sasportal.googleapis.com/v1alpha1/${CUSTOMER_NAME}/devices:createSigned" \ -d "{ \"installer_id\": \"${CPI_ID}\", \"encoded_device\": \"${ENCODED_DEVICE}\", \"parent\": \"${CUSTOMER_NAME}\" }"
その後、CBSD は登録を完了するために SAS に登録リクエストを送信する必要があります。
CPI アカウント
デバイス構成を検証する前に、CPI の ID を検証する必要があります。完了したら、次のコマンドを使用して、無効なデバイス構成を作成します。
curl -X POST -H "X-Goog-User-Project: ${CLIENT_PROJECT}" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $TOKEN" \ "https://sasportal.googleapis.com/v1alpha1/${DEVICE_NAME}:signDevice" \ -d "${DEVICE}"
${DEVICE}
は、CBSD 登録パラメータの JSON 表現に置き換えます。形式の詳細については、REST リソース: customers.devices をご覧ください。
その後、CBSD は登録を完了するために SAS に登録リクエストを送信する必要があります。
次のステップ
- SAS Portal API の概要については、Google SAS Portal API の概要をご覧ください。
- 各 API の詳細については、Customers API と Device Manager API をご覧ください。
- リファレンス ドキュメントについては、API とリファレンスをご覧ください。