поэтому я пытаюсь интегрировать Estimote API, чтобы перенести список маяков в мою личную CMS, я столкнулся с проблемой, что я получаю сообщение «Несанкционировано», которое я прочитал через Api docs, и General — Authorization — это тот, который я могу, так как я беру с собой маяки, которые есть в моей учетной записи в облаке, вот пример запроса curl, что я могу получить список маяков, выполнив это:
curl -u app_0a1b2c3d4e:0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d \
-H 'Accept: application/json' \
https://cloud.estimote.com/v1/beacons
Проблема в том, что я пытался сделать это, и он говорит, что в целом я должен использовать App ID и App Token для авторизации моих запросов
header('Content-Type: application/json');
$app_id = "appid";
$token = "token";
$ch = curl_init('https://cloud.estimote.com/v1/beacons?appid='.$appId.'&apptoken='.$token);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json'));
$result = curl_exec($ch);
print_r($result);
curl_close($ch);
какие-либо идеи о том, что я делаю не так?
https://cloud.estimote.com/docs/#api-Beacons-GetBeacons
То, что вы делаете, пытается отправить поля сообщения с запросом получения.
Вы можете удалить эту строку curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
В документации https://cloud.estimote.com/docs/#api-General-Authorization он говорит, что вам нужно отправить свой appid в качестве имени пользователя и токен в качестве пароля. В curl у вас есть такая опция.
Попробуй это
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://cloud.estimote.com/v1/beacons');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, "$appid:$token");
$output = curl_exec($ch);
curl_close($ch);
Других решений пока нет …