Работа с данными постов для исследований
Для работы с данными постов для исследований, необходим ключ доступа, а также расширенные права доступа (выдаются по запросу в индивидуальном порядке).
API практически полностью повторяет api Posts, но необходимо использовать специальные endpoints
Примеры
Получение списка постов для исследований
import os
import json
import requests
api_url = 'https://mycityair.ru/harvester/v2/publicposts'
api_key = os.getenv('CITYAIR_TOKEN') # or set your api key directly
assert api_key, 'API key is empty'
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {api_key}',
}
response = requests.get(api_url, headers=headers)
response.raise_for_status()
formatted_response = json.dumps(response.json(), indent=2, ensure_ascii=False)
print(formatted_response)
Получение данных поста для исследований
import datetime
import json
import os
import requests
public_post_list_url = 'https://mycityair.ru/harvester/v2/publicposts'
api_key = os.getenv('CITYAIR_TOKEN') # or set your api key directly
assert api_key, 'API key is empty'
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {api_key}',
}
response = requests.get(public_post_list_url, headers=headers)
response.raise_for_status()
posts = response.json()
assert len(posts) > 0, 'At least one post is required'
post = posts[0]
print(f'Got public post {post["id"]}:{post["name"]}')
interval = '1h'
date_start = (datetime.datetime.utcnow() - datetime.timedelta(days=1)).isoformat()
post_measurements_url = f'https://mycityair.ru/harvester/v2/publicposts/measurements?ids={post["id"]}&' \
f'interval={interval}&' \
f'date__gt={date_start}'
response = requests.get(post_measurements_url, headers=headers)
assert response.status_code == 200, f'Server responded with error: {response.text}'
response.raise_for_status()
formatted_response = json.dumps(response.json(), indent=2, ensure_ascii=False)
print(formatted_response)