2015-07-21 56 views
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="" 
}- 
- 
}- 
- 
}- 
} 
+0

錯誤消息似乎在這裏死了 - 無論出於何種原因,這不是一個有效的base64編碼的ID。我試圖用'openssl enc base64 -d <<<「scn3SDrgSD32rSEgv =」'在命令行解碼它,它不打印任何東西。所以,這似乎不是一個有效的advertiserId ...你用什麼函數來編碼ID的base64? – MarcWan

+0

我使用Apache Commons編解碼器Base64類生成Id字符串bytesEncoded = Base64.encodeBase64String(「beacon」.getBytes()); – Sasikumar

+0

這是Eddystone燈塔嗎? Eddystone ID總是16個字節,並且當base64編碼總是比原始字節流(base64是4:3)大約大1/3時... 16字節ID應該大致爲22個字節左右。所以如果你的base64只有18個字符,那麼你編碼的ID肯定有問題。你從哪裏得到這個beaconID,你能看到這個值並驗證它是16字節嗎?不要忘記你想編碼這個ID的二進制版本。 – MarcWan

回答

0

傳遞給雷吉斯的AdverisedId ter調用必須有效 - 對於Eddystone兼容信標,id字段必須是直接編碼爲base64字符串的16字節二進制ID,其中type字段設置爲"EDDYSTONE"

+0

如何獲得刊登廣告? –