0
我已獲得OAuth訪問令牌與第以下範圍: https://www.googleapis.com/auth/userlocation.beacon.registry無法信標寄存器由於對「advertisedId.id」字段值無效
並使用授權接近信標接收的API的訪問令牌,
現在,當我試圖註冊與google's documentation page提到的值一盞明燈,它拋出一個錯誤如下,
{
error: {
code: 400
message: "Invalid value at 'beacon.advertised_id.id' (TYPE_BYTES), value was "scn3SDrgSD32rSEgv=""
status: "INVALID_ARGUMENT"
details: [1]
0: {
@type: "type.googleapis.com/google.rpc.BadRequest"
fieldViolations: [1]
0: {
field: "beacon.advertised_id.id"
description: "Invalid value at 'beacon.advertised_id.id' (TYPE_BYTES), value was "scn3SDrgSD32rSEgv=""
}-
-
}-
-
}-
}
錯誤消息似乎在這裏死了 - 無論出於何種原因,這不是一個有效的base64編碼的ID。我試圖用'openssl enc base64 -d <<<「scn3SDrgSD32rSEgv =」'在命令行解碼它,它不打印任何東西。所以,這似乎不是一個有效的advertiserId ...你用什麼函數來編碼ID的base64? – MarcWan
我使用Apache Commons編解碼器Base64類生成Id字符串bytesEncoded = Base64.encodeBase64String(「beacon」.getBytes()); – Sasikumar
這是Eddystone燈塔嗎? Eddystone ID總是16個字節,並且當base64編碼總是比原始字節流(base64是4:3)大約大1/3時... 16字節ID應該大致爲22個字節左右。所以如果你的base64只有18個字符,那麼你編碼的ID肯定有問題。你從哪裏得到這個beaconID,你能看到這個值並驗證它是16字節嗎?不要忘記你想編碼這個ID的二進制版本。 – MarcWan