Код геолокации возвращает пустой результат

Я хочу получить долготу и широту устройства, используя адрес mac, а не возвращая никакого значения.

Я активировал свой Google Geolocation API и включил биллинг. Пожалуйста, помогите.

<?php           
        $mac = "E4:D5:3D:E4:05:BF"; 
        //encode the data in JSON   
    $wifiAccessPoints = array("macAddress"=>$mac);
    $wifiAccessPoints = json_encode($wifiAccessPoints);

    $API_key = "AIzaSyApOf.................";

        $url  = "https://www.googleapis.com/geolocation/v1/geolocate?key=$API_key";



        $client = curl_init($url);
        //send the request to resource
        curl_setopt($client, CURLOPT_CUSTOMREQUEST, "POST");
        curl_setopt($client, CURLOPT_HEADER, false);
        curl_setopt($client, CURLOPT_POSTFIELDS, $wifiAccessPoints);
        curl_setopt($client, CURLOPT_RETURNTRANSFER,true);

        curl_setopt($client, CURLOPT_HTTPHEADER,array("Content-type: application/json", "Content-Length".strlen($wifiAccessPoints)));

        curl_setopt($client,CURLOPT_POST,true);


        //get response from request.
        $response = curl_exec($client);

        //decode format response
        //$result = json_decode($response);
        $status = curl_getinfo($client, CURLINFO_HTTP_CODE);

        echo $status."<br>";

        echo $response."<br>";

        ?>     

person Morris    schedule 03.08.2015    source источник
comment
Добро пожаловать в СО. Вы получаете сообщения об ошибках? Каковы результаты echoдействия $status и $response?   -  person Peter    schedule 03.08.2015
comment
статус $ возвращает 0, ответ $ пуст, и я не получаю сообщения об ошибке   -  person Morris    schedule 03.08.2015
comment
Попробуйте использовать такой инструмент, как Fiddler или WireShark, чтобы увидеть, какой необработанный ответ HTTP возвращается API, что даст вам лучшее представление о том, что происходит.   -  person Peter    schedule 03.08.2015
comment
вот такая ошибка у меня: { "error": { "errors": [ { "domain": "geolocation", "reason": "notFound", "message": "Not Found" } ], "code": 404, "message": "Not Found" } }   -  person Morris    schedule 04.08.2015


Ответы (1)


Возвращаемая ошибка указывает на то, что ваш запрос отформатирован правильно, но API не смог найти для него геолокацию. В документации по API говорится о вашем результате:

Причина: notFound
Домен: геолокация
Код состояния: 404
Описание: Запрос был действительным, но результаты не были возвращены.

Получается, что вы выполняете свой запрос успешно, но Google не всегда сможет сказать вам, где находится конкретная точка доступа Wi-Fi (было бы невозможно ожидать, что они знают их все).

В документации также указано, что

Массив wifiAccessPoints тела запроса должен содержать два или более объекта точки доступа Wi-Fi. macAddress обязателен; все остальные поля являются необязательными.

Похоже, у вас есть только одна точка доступа, поиск по IP может быть более точным. Документация содержит массу информации о том, как вы можете переформатируйте ввод JSON.

person Peter    schedule 04.08.2015