Токен к 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
Roman N

Всем привет!

Использую метод
POST https://api.zenmoney.ru/v8/diff/
Пытаюсь добавить транзакцию
Получаю ошибку

"error": {
"code": "validationError",
"message": "No time of the last synchronization (lastServerTimestamp) (truncated...)

в serverTimestamp устанавливается значение 0

в currentClientTimestamp устанавливается текущее время
Как быть? Спасибо за ответ.

Avatar
Ryadnov
Цитата от Андрей Евко

А с google sheets не пробовали связывать?

oauth сложновато, но можно

есть есть финальный токен (он не протухает), то все просто

Avatar
Андрей Евко
Цитата от Святослав Даниленко

Да, я читал комменты из этой темы и сверялся с кодом из репы Ryadnov. Именно из-за нее я решил установить пароль на свой акк.

Ради эксперимента спулил zenmoney-php-api-library и авторизироваться через нее. Все получилось!

После этого эксперимента мне удалось установить причину по которой не получалось добыть токен через curl. Как оказалось, ошибка invalid_grant не означает, что что-то не так с grant_type. Эта ошибка была из-за того, что запрос кода авторизации (/oauth/authorize) и запрос токена (/oauth/authorize) содержали разные значения в параметрах redirect_uri, которые я для теста в обоих случаях писал какие-попало :facepalm:

В общем, спасибо за то, что настояли на том, что примеры и вправду рабочие, а я постараюсь в следующий раз относиться серьезнее к редирект урлам при oauth :D

А с google sheets не пробовали связывать?

Avatar
Цитата от support

На GitHub много рабочих примеров: https://github.com/search?q=zenmoney

В частности, рекомендуем заглянуть сюда: https://github.com/Ryadnov/zenmoney-php-api-library

Да, я читал комменты из этой темы и сверялся с кодом из репы Ryadnov. Именно из-за нее я решил установить пароль на свой акк.

Ради эксперимента спулил zenmoney-php-api-library и авторизироваться через нее. Все получилось!

После этого эксперимента мне удалось установить причину по которой не получалось добыть токен через curl. Как оказалось, ошибка invalid_grant не означает, что что-то не так с grant_type. Эта ошибка была из-за того, что запрос кода авторизации (/oauth/authorize) и запрос токена (/oauth/authorize) содержали разные значения в параметрах redirect_uri, которые я для теста в обоих случаях писал какие-попало :facepalm:

В общем, спасибо за то, что настояли на том, что примеры и вправду рабочие, а я постараюсь в следующий раз относиться серьезнее к редирект урлам при oauth :D

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

Всем привет, при запросе токена получаю ошибку:

{
"error": "invalid_grant"
}

Думал, что oauth криво работает при входе через google oauth. Установил логин и пароль — результат тот же. grant_type ест, ественно, взят из документации. Вот пример запроса:

curl -X POST \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'grant_type=authorization_code&client_id=123&client_secret=123&code=444&redirect_uri=http%3A%2F%2Fexample.com%2Fcb%2F123' \
  https://api.zenmoney.ru/oauth2/token -i

Никто не сталкивался с такими проблемами? Не могу понять что я упустил

На GitHub много рабочих примеров: https://github.com/search?q=zenmoney

В частности, рекомендуем заглянуть сюда: https://github.com/Ryadnov/zenmoney-php-api-library

Avatar

Всем привет, при запросе токена получаю ошибку:

{
"error": "invalid_grant"
}

Думал, что oauth криво работает при входе через google oauth. Установил логин и пароль — результат тот же. grant_type ест, ественно, взят из документации. Вот пример запроса:

curl -X POST \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'grant_type=authorization_code&client_id=123&client_secret=123&code=444&redirect_uri=http%3A%2F%2Fexample.com%2Fcb%2F123' \
  https://api.zenmoney.ru/oauth2/token -i

Никто не сталкивался с такими проблемами? Не могу понять что я упустил

Avatar
Ryadnov
Цитата от Дмитрий Баданин

Всем привет.

Пишу консольное приложение, хочу получать данные из дзенмани.

Зарегистрировал приложение с помощью скрипта, получил следующие данные

  • Consumer Key: ***
  • Consumer Secret: ***

Смутило, что в вики и примере на php используется url

https://api.zenmoney.ru/oauth2/authorize/

А в полученных при регистрации адресах его нет

Попробовал повторить пример:

1. Делаем запрос

GET https://api.zenmoney.ru/oauth2/authorize/?response_type=code&client_id=g2d02e658ac0fe2e9a&redirect_uri=http%3A%2F%2Flocalhost%2Foaut

в ответ получаем html формы

2. Хотим получить code из заголовка Location. Делаем

POST https://api.zenmoney.ru/oauth2/authorize/

username=123&password=123&auth_type_password=Sign I

В ответ получаем 400 error: invalid request

Имя пользователя и пароль верные - проверил в браузере.

Что я делаю не так ?

Получаем HTML формы + куки
Куки прокидываем в POST

кажется так)

Avatar
Дмитрий Баданин

Всем привет.

Пишу консольное приложение, хочу получать данные из дзенмани.

Зарегистрировал приложение с помощью скрипта, получил следующие данные

  • Consumer Key: ***
  • Consumer Secret: ***

Смутило, что в вики и примере на php используется url

https://api.zenmoney.ru/oauth2/authorize/

А в полученных при регистрации адресах его нет

Попробовал повторить пример:

1. Делаем запрос

GET https://api.zenmoney.ru/oauth2/authorize/?response_type=code&client_id=g2d02e658ac0fe2e9a&redirect_uri=http%3A%2F%2Flocalhost%2Foaut

в ответ получаем html формы

2. Хотим получить code из заголовка Location. Делаем

POST https://api.zenmoney.ru/oauth2/authorize/

username=123&password=123&auth_type_password=Sign I

В ответ получаем 400 error: invalid request

Имя пользователя и пароль верные - проверил в браузере.

Что я делаю не так ?

Avatar
skvav
Цитата от Dmitry Klekovkin

так никак не могу понять как же я могу получить сущность User через rest API? которая описана тут: https://github.com/zenmoney/ZenPlugins/wiki/ZenMoney-API

пробовал уже 

все дают 404

что не так?

А REST API нет, про него в описании ничего не сказано :) Есть только две точки: /v8/diff/ и /v8/suggest/

Avatar
Dmitry Klekovkin
Цитата от skvav

Используете новый токен для старого апи, которое более не поддерживается. Выше закреплен ответ, какие методы апи можно использовать.

так никак не могу понять как же я могу получить сущность User через rest API? которая описана тут: https://github.com/zenmoney/ZenPlugins/wiki/ZenMoney-API

пробовал уже 

все дают 404

что не так?