Токен к api
Как получит токен для API zenmoney? В каком парметре его передавать или в каком заголовке? Приведите минимальный пример запроса на транзакции.
Всем привет!
Использую метод
POST https://api.zenmoney.ru/v8/diff/
Пытаюсь добавить транзакцию
Получаю ошибку
"error": {
"code": "validationError",
"message": "No time of the last synchronization (lastServerTimestamp) (truncated...)
в serverTimestamp устанавливается значение 0
в currentClientTimestamp устанавливается текущее время
Как быть? Спасибо за ответ.
У вас неправильное тело запроса. Скорее всего вы забыли либо Content-Type заголовок, соответсвующий телу запроса, либо тело запроса - невалидный json.
Наконец-то собрался запаблишить имплементацию api клиента на nodejs. Вот ссылка, если кому надо: https://github.com/SleepWalker/zenmoney-api
Наконец-то собрался запаблишить имплементацию api клиента на nodejs. Вот ссылка, если кому надо: https://github.com/SleepWalker/zenmoney-api
Уважаемые модераторы, скажите пожалуйста в чем причина, что этот пост не пропускают в массы уже 2 месяца? :)
Доброе время суток !
Не могу подключиться через Python.
Попробовал так:
import requests
def main():
s = requests.Session()
s_tok = "токен"
s = requests.Session()
s.headers['Authorization'] = 'Bearer ' + s_tok
s.headers['Content-Type'] = 'application/json'
parameters = {"currentClientTimestamp": 1605542309, "serverTimestamp": 0}
h = s.post("http://api.zenmoney.ru/v8/diff", params = parameters)
Получаю ответ:
{
"error": {
"code": "validationError",
"message": "No time of the last synchronization (lastServerTimestamp) provided"
}
}
Потом попробовал URL поменять:
h = s.post("http://api.zenmoney.ru/v8/diff/account", params = parameters)
Уже сообщение другое:
{
"error": {
"message": "File not found",
"code": "fileNotFound"
}
}
Исправлен, Андрей помог
Ошибка была тут:
h = s.post("http://api.zenmoney.ru/v8/diff", params = parameters)
Правильный:
h = s.post("http://api.zenmoney.ru/v8/diff", json = parameters)
делаю запрос на получение токена:
curl --location --request POST 'https://api.zenmoney.ru/oauth2/token/' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=authorization_code' \
--data-urlencode 'client_id=id' \
--data-urlencode 'client_secret=secret' \
--data-urlencode 'code=КОД ИЗ КУКИ zen_AU' \
--data-urlencode 'redirect_uri=http://localhost/callback'
ответ: "error": "invalid_grant"
в чем может быть причина?
делаю запрос на получение токена:
curl --location --request POST 'https://api.zenmoney.ru/oauth2/token/' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=authorization_code' \
--data-urlencode 'client_id=id' \
--data-urlencode 'client_secret=secret' \
--data-urlencode 'code=КОД ИЗ КУКИ zen_AU' \
--data-urlencode 'redirect_uri=http://localhost/callback'
ответ: "error": "invalid_grant"
в чем может быть причина?
чуть выше на этой странице уже есть обсуждение ошибки invalid_grant. Вы читали тот пост? Возможно у вас такая же проблема. Судя по всему эта ошибка происходит в том случае, если запросы authorize и token содержат разные параметры. В моем случае беда была из-за того, что я в этих запросах указывал разные значения для redirect_uri.
Для начала нужно зарегистрировать клиентское приложение. Тут, по нажатию на "скриптом"
http://developers.zenmoney.ru/index.html
После этого используем полученные consumer_key, consumer_secret и введенный OAuth callback point url в качестве client_id, client_secret и redirect_uri протокола OAuth 2.0. Дальнейшее взаимодействие и доступные методы API описаны тут:
https://github.com/zenmoney/ZenPlugins/wiki/ZenMoney-API