Python 3.6 API запроса домена запроса - PullRequest
0 голосов
/ 12 октября 2019

Это немного новичок Q.

Я использую Python 3.6

Я пытаюсь использовать домен realestate api , чтобы написать скребок, которыйсобирает данные о домах / квартирах для продажи в моем районе, но у меня возникают проблемы с получением почтового запроса на работу. Я зарегистрировал и получил свои client_id и secret_id для аутентификации. Почтовый запрос возвращает код состояния 400

response = requests.post('https://auth.domain.com.au/v1/connect/token',
                              data = {'client_id':client_id,
                                     "client_secret":client_secret,
                                     "grant_type":"client_credentials",
                                     "scope":"api_agencies_read api_listings_read",
                                     "Content-Type":"application/json"})

token=response.json()
access_token=token["access_token"]

search_parameters = {
  "listingType": "Sale",
  "locations": [
    {
      "state": "NSW",
      "suburb": "Balgowlah",     
      "postcode": 2093,
      "includeSurroundingSuburbs": True
    }
  ]
}

url = "https://api.domain.com.au/v1/listings/residential/_search"
auth = {"Authorization":"Bearer "+access_token}
request = requests.post(url, data=search_parameters, headers=auth)
details=request.json()

Я знаю, что моя аутентификация верна, потому что я могу использовать Live API на веб-сайте для проверки того же запроса (мне пришлось выбрать клиента, секретный идентификатор ипроект, чтобы разрешить прямой доступ), и я получаю действительный токен доступа из кода выше.

access_token:
{'access_token': 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
'expires_in': 43200,
'token_type': 'Bearer'}

request.json():
{'errors': {'parameters': ['Undefined error.']},
 'message': 'The request is invalid.'}

Я смог реализовать ноутбук из этого поста . Поэтому я могу быть уверен, что мой клиент и секретные идентификаторы связаны с проектом домена.

1 Ответ

0 голосов
/ 13 ноября 2019

@ furas имел решение:

посмотрите на пример поближе:)

В примере используется "Content-Type":"text/json", но вы используете "application/json" вместо "text/json"

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