4

そのため、Estimote API を統合してビーコン リストを個人の CMS に持ち込もうとしましたが、「Unauthorized」というメッセージが表示されるという問題に遭遇しました。Api ドキュメントと一般を読みました。クラウド アカウントにあるビーコンを持ってきているので、次のようにしてビーコンのリストを取得できる curl リクエストの例があります。

curl -u app_0a1b2c3d4e:0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d \
     -H 'Accept: application/json' \
     https://cloud.estimote.com/v1/beacons

問題は、私がそれをやろうとしてきたことであり、一般的にはアプリIDとアプリトークンを使用してリクエストを承認する必要があると言われています

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

4

1 に答える 1

3

あなたがやっていることは、get リクエストで投稿フィールドを送信しようとしていることです。

この行を削除できます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);
于 2016-03-19T07:34:06.927 に答える