このページには、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 とリファレンスをご覧ください。