Python Google Geolocation API, используя Wi-Fi Mac - PullRequest
0 голосов
/ 02 июля 2018

Я пытаюсь использовать Google API для определения местоположения, предоставляя данные Wi-Fi для определения местоположения. Это их intro . И это мой код

@author: Keith
"""

import requests

payload =         {
  "considerIp": "false",
  "wifiAccessPoints": [
    {
        "macAddress": "00:25:9c:cf:1c:ac",
        "signalStrength": -43,
        "signalToNoiseRatio": 0
    },
    {
        "macAddress": "00:25:9c:cf:1c:ad",
        "signalStrength": -55,
        "signalToNoiseRatio": 0
    }
  ],
  'key':'<MyAPIKey>'
}
r = requests.post('https://www.googleapis.com/geolocation/v1/geolocate', 
params=payload)
print(r.text)

Это вывод

{
 "location": {
  "lat": 32.3643098,
  "lng": -88.703656
 },
 "accuracy": 6061.0
}

Запрос игнорировал всю полезную нагрузку, кроме ключевой части, и только что обнаружил геолокацию, используя мой IP-адрес. Поэтому я отправляю данные JSON неправильно. Я знаю, что это, вероятно, действительно просто, но я застрял и не смог найти пример использования python с запросами для выполнения этого типа запроса API. Спасибо

Edit: Подобрал библиотеку cURL и успешно выполнил эту команду:

curl -d @your_filename.json -H "Content-Type: application/json" -i "https://www.googleapis.com/geolocation/v1/geolocate?key=<myapikey>"

и получил результат, который я ожидал. Я просто хочу иметь возможность делать то же самое в запросах, но данные, которые я пытаюсь отправить, находятся в "your_filename.json".

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Хорошо, я разобрался с ошибкой своих способов. Если взглянуть на функцию reports.post лучше, я вижу, что не правильно использую аргумент параметров. После этого все заработало отлично,

r = requests.post('https://www.googleapis.com/geolocation/v1/geolocate', params=parameters, json=mydata, headers=headers)
0 голосов
/ 02 июля 2018

Пожалуйста, попробуйте следующее:

r = requests.post('https://www.googleapis.com/geolocation/v1/geolocate?key='+ '<MyAPIKey>', json=payload)

Обратите внимание, что ключ был перемещен в параметры запроса (URL), а вместо params.

использовался аргумент json.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...