Может кто-то помочь мне с этим. Я новичок в Eddystone Beacon, и я впервые использую Google Cloud API (Proiimity beacon api). Я пытаюсь добавить Уведомление о близости к одному из моих зарегистрированных маяков (это можно сделать на панели инструментов Google Beacon) с помощью Proximity Beacon API и задаюсь вопросом, почему я получаю эту ошибку:
{ "error": { "code": 400, "message": "Invalid JSON payload received. Unknown name \"{\"attachmentName\":\"beacon_eddystone\",\"data\":\"eyJ0aXRsZSI6IlNJTSBUZXN0IiwidXJsIjoiaHR0cDpcL1wvd3d3LnN1cmlnYW9pbnRlcm5ldG1hcmtldGluZy5jb20ifQ\": Cannot bind query parameter. Field '{\"attachmentName\":\"beacon_eddystone\",\"data\":\"eyJ0aXRsZSI6IlNJTSBUZXN0IiwidXJsIjoiaHR0cDpcL1wvd3d3LnN1cmlnYW9pbnRlcm5ldG1hcmtldGluZy5jb20ifQ' could not be found in request message.", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.BadRequest","fieldViolations": [ { "description": "Invalid JSON payload received. Unknown name \"{\"attachmentName\":\"beacon_eddystone\",\"data\":\"eyJ0aXRsZSI6IlNJTSBUZXN0IiwidXJsIjoiaHR0cDpcL1wvd3d3LnN1cmlnYW9pbnRlcm5ldG1hcmtldGluZy5jb20ifQ\": Cannot bind query parameter. Field '{\"attachmentName\":\"beacon_eddystone\",\"data\":\"eyJ0aXRsZSI6IlNJTSBUZXN0IiwidXJsIjoiaHR0cDpcL1wvd3d3LnN1cmlnYW9pbnRlcm5ldG1hcmtldGluZy5jb20ifQ' could not be found in request message." } ] } ] } }
Я сделал HttpRequest с использованием cURL в PHP и вот код:
$array = array();
$array['title'] = "SIM Test";
$array['url'] = "http://www.surigaointernetmarketing.com";
$data = base64_encode(json_encode($array));
//echo $data;
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://proximitybeacon.googleapis.com/v1beta1/beacons/<my-beacon-name>/attachments?projectId=<my-project-id>',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION =>
CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => '{"attachmentName":"beacon_eddystone","data":"'.$data.'","namespacedType":"com.google.nearby/en"}',
CURLOPT_HTTPHEADER => array( "authorization: Bearer <my-bearer-token>" ),));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err)
echo "cURL Error #:" . $err;
else
echo $response;
Я получил код от Вот. И следовал инструкциям в
Начните с API REST Proximity Beacon. В теле запроса http должна быть ошибка (CURLOPT_POSTFIELDS). И я не мог понять почему, пожалуйста, помогите.
Задача ещё не решена.
Других решений пока нет …