API 代码示例

本页面包含 Google 频谱使用权系统 (SAS) 门户 API 的代码示例。

准备工作

对于以下示例,请确保您满足以下前提条件:

列出当前客户

  1. 返回调用方有权访问的所有客户:

    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"
    
  2. 将返回的客户名称保存为变量:

    CUSTOMER_NAME=customers/...
    

创建新的设备配置

  1. 设置要创建的设备的 ${FCCID}${SN}

    FCCID=f1
    SN=sn1
    
  2. 创建设备配置:

    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\"}}"
    

    该命令会返回新创建的设备配置。

  3. 将设备名称保存为变量:

    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) 身份和认证

  1. 生成 Secret 字符串:

    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>"
     }
    
  2. 使用 JSON Web 令牌格式将 Secret 字符串编码为 JWT。

  3. 设置以下内容:

    1. ${SECRET} 添加到 Secret 字符串
    2. ${ENCODED_SECRET} 添加到 JWT 字符串
    3. ${CPI_ID} 替换为 CPI 的 ID
  4. 验证 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:validate" \
      -d "{ \"installer_id\": \"${CPI_ID}\", \"secret\": \"${SECRET}\", \"encoded_secret\": \"${ENCODED_SECRET}\" }"
    

现在,CPI 可以安装具有所有必需参数的 Citizens Broadband Radio Service Device (CBSD)。

多步 CBSD 注册

您可以使用之前由 CPI 签名的设备参数或 CPI 账号执行多步 CBSD 注册。

之前由 CPI 签名的设备参数

此示例展示了如何使用之前由 CPI 编码的 CBSD 安装参数创建非活动设备配置。因此,非 CPI 用户也可以创建配置。

  1. 使用 CPI 的私钥对 CBSD 参数进行编码。我们建议您使用 JSON Web 令牌格式
  2. ${ENCODED_DEVICE} 设置为 JWT 字符串,将 ${CPI_ID} 设置为 CPI 的 ID。
  3. 创建非活动设备配置:

    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 的身份。完成后,使用以下命令创建非活跃设备配置:

  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 发送注册请求,才能完成注册。

后续步骤