本页面包含 Google 频谱使用权系统 (SAS) 门户 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) 身份和认证
生成 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>" }
使用 JSON Web 令牌格式将 Secret 字符串编码为 JWT。
设置以下内容:
${SECRET}
添加到 Secret 字符串${ENCODED_SECRET}
添加到 JWT 字符串${CPI_ID}
替换为 CPI 的 ID
验证 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 用户也可以创建配置。
- 使用 CPI 的私钥对 CBSD 参数进行编码。我们建议您使用 JSON Web 令牌格式。
- 将
${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 的身份。完成后,使用以下命令创建非活跃设备配置:
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 门户 API,请参阅 Google SAS 门户 API 概览。
- 如需了解每种 API,请参阅 Customers API 和 Device Manager API。
- 如需查看参考文档,请参阅 API 与参考文档。