Токен к api

Avatar
  • обновлен
  • Отвечен

Как получит токен для API zenmoney? В каком парметре его передавать или в каком заголовке? Приведите минимальный пример запроса на транзакции.

Прикрепленные ответы
Avatar
skvav
  • Ответ

Для начала нужно зарегистрировать клиентское приложение. Тут, по нажатию на "скриптом"

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

Avatar
skvav
Цитата от Ryadnov

Возможно стоит в таком случае сделать нормальный ответ? )))

А причем тут авторизация.  Тут тело запроса невалидное.

Avatar
skvav
Цитата от Roman N

Всем привет!

Использую метод
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.

Avatar
Roman N
Цитата от skvav

У вас неправильное тело запроса. Скорее всего вы забыли либо Content-Type заголовок, соответсвующий телу запроса, либо тело запроса - невалидный json.

Да, вы правы, не был установлен Content-Type

Avatar

Наконец-то собрался запаблишить имплементацию api клиента на nodejs. Вот ссылка, если кому надо: https://github.com/SleepWalker/zenmoney-api

Avatar
Цитата от Святослав Даниленко

Наконец-то собрался запаблишить имплементацию api клиента на nodejs. Вот ссылка, если кому надо: https://github.com/SleepWalker/zenmoney-api

Уважаемые модераторы, скажите пожалуйста в чем причина, что этот пост не пропускают в массы уже 2 месяца? :)

Avatar
support
Цитата от Святослав Даниленко

Уважаемые модераторы, скажите пожалуйста в чем причина, что этот пост не пропускают в массы уже 2 месяца? :)

Готово :)

Avatar
Gabit Omarov

Доброе время суток !

Не могу подключиться через 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"
}
}

Avatar
Gabit Omarov

Исправлен, Андрей помог

Ошибка была тут:

h = s.post("http://api.zenmoney.ru/v8/diff", params = parameters)

Правильный:

h = s.post("http://api.zenmoney.ru/v8/diff", json = parameters)

Avatar
renatuvarov1311

делаю запрос на получение токена:
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"
в чем может быть причина?

Avatar
Цитата от renatuvarov1311

делаю запрос на получение токена:
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.