Ad Widget

Collapse

Как получить текущий баланс из API yandex direct?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • IvanSergeevich
    Junior Member
    • Feb 2021
    • 10

    #1

    Как получить текущий баланс из API yandex direct?

    Идея выводить баланс счёта на панель мониторинга.
    Что было сделано:
    1) Подключил API direct, зарегистрировал приложение итд
    2) Составил рабочий curl:
    Code:
     curl -d '{"method": "AccountManagement","token": "AgAA...................","param": {"SelectionCriteria": {}, "Action": "Get"}}' https://api-sandbox.direct.yandex.ru/live/v4/json/
    Ответ:
    Code:
    {"data":{"ActionsResult":[],"Accounts":[{"SmsNotification":{"SmsTimeFrom":"09:00","MoneyInSms":"No","MoneyOutSms":"No","PausedByDayBudgetSms":"Yes","SmsTimeTo":"21:00"},"Login":"IVan","AmountAvailableForTransfer":"8033.33","Currency":"RUB","Discount":0,"AccountID":408446,"Amount":"8333.33","EmailNotification":{"SendWarn":null,"MoneyWarningValue":20,"PausedByDayBudget":"Yes","Email":"[email protected]"},"AgencyName":null}]}}
    3) Запилил bash c Curl
    4) Закинул в скрипты zabbix и прописал конфиг в агенте в общем
    Code:
    zabbix_agentd -t yandex_direct_api
    такая конструкция возвращает тот же ответ.
    5) Дальше создал шаблон:Click image for larger version

Name:	Api.JPG
Views:	564
Size:	80.8 KB
ID:	417936
    6) А пост обработка cannot extract value from json by path "$.body.data.Amount[]": не просто $.data. не хочет работать.
    Подскажите пожалуйста, что делать? Как хотя бы посмотреть получает ли забикс данные? Я только познаю эту мощь)))
  • Evgene-mmk
    Member
    • Nov 2020
    • 44

    #2
    $.data.Accounts..Amount

    кавычки наверно еще убрать надо будет чтобы получить число

    Comment

    • IvanSergeevich
      Junior Member
      • Feb 2021
      • 10

      #3
      $.data.Accounts..Amount да да походу должно сработать СПАСИБО!!!)))
      Code:
      {"data":{"ActionsResult":[],"Accounts":[{"SmsNotification":{"SmsTimeFrom":"09:00","MoneyIn Sms":"No","MoneyOutSms":"No","PausedByDayBudgetSms ":"Yes","SmsTimeTo":"21:00"},"Login":"IVan","Amoun tAvailableForTransfer":"8033.33","Currency":"RUB", "Discount":0,"AccountID":408446,"Amount":"8333.33" ,"EmailNotification":{"SendWarn":null,"MoneyWarnin gValue":20,"PausedByDayBudget":"Yes","Email":"bla@ blabla.ds"},"AgencyName":null}]}}]
      Мне bash почему то возвращает результат с лишней ] (Квадратной) скобкой на конце, похоже, что из-за этого забикс не хочет его парсить. Надо разобраться со скобочкой

      Comment

      • IvanSergeevich
        Junior Member
        • Feb 2021
        • 10

        #4
        С ( ] ) так и не разобрался((( чтобы я не делал баш возвращает ответ с ] на конце. Пошёл другим путем решил ответ писать в файл "Apires.json", а вот как обработать файл в zabbix вообще не понятно вменяемых мануалов не нашел

        Comment

        • Evgene-mmk
          Member
          • Nov 2020
          • 44

          #5
          В элементе данных -> предобработка добавь 1 шаг JSONPath с параметром $.data.Accounts..Amount -> 2 шаг "обрезать" ']' или заменить ']'на ''

          Comment

          • IvanSergeevich
            Junior Member
            • Feb 2021
            • 10

            #6
            Originally posted by Evgene-mmk
            В элементе данных -> предобработка добавь 1 шаг JSONPath с параметром $.data.Accounts..Amount -> 2 шаг "обрезать" ']' или заменить ']'на ''
            Еще раз спасибо!!!
            Может я что-то фундаментально делаю не так?
            Ответ на запрос в Ubunu: Click image for larger version

Name:	Api 3.JPG
Views:	470
Size:	62.8 KB
ID:	418341

            Элемент данных: Click image for larger version

Name:	Api 1.JPG
Views:	459
Size:	78.6 KB
ID:	418342
            Обработка: естественно попробовал разные варианты замена, обрезка итд.Click image for larger version

Name:	Api 2.JPG
Views:	474
Size:	100.2 KB
ID:	418343
            А он говорит мол формат не правильный(

            Comment

            • Kos
              Senior Member
              Zabbix Certified SpecialistZabbix Certified Professional
              • Aug 2015
              • 3404

              #7
              Дык у вас не в том месте проблема!

              Закрывающая квадратная скобка - это не от скрипта, а от команды "zabbix_agentd -t", в реальных данных её нет.
              Сравните для наглядности, например, с выводом той же команды zabbix_agentd -t", но попросив показать значение параметра "agent.version" или "system.uname".

              А вот что идёт от скрипта - так это совершенно ненужный в данном случае прогресс-бар. Кто ж использует в скриптах утилиту curl без параметра "-s"?

              Comment

              • IvanSergeevich
                Junior Member
                • Feb 2021
                • 10

                #8
                Спасибо!
                -s ставил и убирал, сейчас поставил обратно, за совет спасибо! Ошибка неправильный формат так и осталась(( И еще у меня проблема: не понимаю, что писать в правила обнаружения в поле ключ? Пробовал data.Accounts..Amount и просто data и Amount

                Comment

                • Kos
                  Senior Member
                  Zabbix Certified SpecialistZabbix Certified Professional
                  • Aug 2015
                  • 3404

                  #9
                  Originally posted by IvanSergeevich
                  -s ставил и убирал, сейчас поставил обратно, за совет спасибо! Ошибка неправильный формат так и осталась((
                  Покажите, пожалуйста, что возвращается сейчас.
                  Я обычно проверяю утилитой zabbix_get - как-то оно, кажется, надёжнее

                  Originally posted by IvanSergeevich
                  И еще у меня проблема: не понимаю, что писать в правила обнаружения в поле ключ? Пробовал data.Accounts..Amount и просто data и Amount
                  Не понял, а правила обнаружения тут при чём? Покажите на скриншоте, пожалуйста, что вы пытаетесь делать.

                  Comment

                  • IvanSergeevich
                    Junior Member
                    • Feb 2021
                    • 10

                    #10
                    Спасибо еще раз!
                    Originally posted by Kos;n41:)8418
                    Покажите, пожалуйста, что возвращается сейчас.
                    Я обычно проверяю утилитой zabbix_get - как-то оно, кажется, надёжнее
                    Click image for larger version  Name:	zabbix_get.jpg Views:	0 Size:	50.5 KB ID:	418517
                    Originally posted by Kos;n41:)8418
                    Не понял, а правила обнаружения тут при чём? Покажите на скриншоте, пожалуйста, что вы пытаетесь делать.
                    Моя идея была в чем: Я по API директа отправляю запрос мне приходит ответ Json и из ответа я вытаскиваю параметр Amount и вывожу его на панель мониторинга. Про правила обнаружения дурканул))) Как я понимаю мне нужен будет еще один зависимый элемент данных, а вот, что в этом случае в качестве ключа нужно указать я не знаю.

                    Извиняюсь с забиксом только познакомился пока освоил тривиальный функционал(
                    Last edited by IvanSergeevich; 10-02-2021, 15:52.

                    Comment

                    • Kos
                      Senior Member
                      Zabbix Certified SpecialistZabbix Certified Professional
                      • Aug 2015
                      • 3404

                      #11
                      Ну, вроде, нормально выглядит результат - вполне себе корректный JSON.
                      Originally posted by IvanSergeevich
                      Как я понимаю мне нужен будет еще один зависимый элемент данных, а вот, что в этом случае в качестве ключа нужно указать я не знаю.
                      Ещё один зависимый имеет смысл в случае, когда вам для чего-то нужен оригинальный элемент данных (вся "простыня" с JSON-ом) - например, чтобы через разные зависимые элементы данных извлекать разные его фрагменты. Если же интересует только одно значение, то прямо в этом же элементе данных и можно добавить через предобработку (препроцессинг), как это значение извлекать.

                      Comment

                      • IvanSergeevich
                        Junior Member
                        • Feb 2021
                        • 10

                        #12
                        Благодарю!
                        Originally posted by Kos
                        Ну, вроде, нормально выглядит результат - вполне себе корректный JSON.
                        Тогда не понимаю в чем проблема от слова совсем
                        Click image for larger version

Name:	Api.JPG
Views:	535
Size:	77.5 KB
ID:	418561Click image for larger version

Name:	Api 2.JPG
Views:	529
Size:	82.6 KB
ID:	418560

                        Comment

                        • Kos
                          Senior Member
                          Zabbix Certified SpecialistZabbix Certified Professional
                          • Aug 2015
                          • 3404

                          #13
                          Originally posted by IvanSergeevich
                          Тогда не понимаю в чем проблема от слова совсем
                          Ну, на последнем скриншоте - снова ругань на прогресс-бар (скриншот такой же, как за 08.02.2021).
                          Это точно тот же самый хост с тем же скриптом (в котором "curl -s"), что и на вчерашнем скриншоте?

                          Comment

                          • Evgene-mmk
                            Member
                            • Nov 2020
                            • 44

                            #14
                            Замечал что JSON парсеры по разному понимают запросы. $.data.Accounts..Amount работает на http://jsonpath.com/ на zabbix я не проверял

                            Comment

                            • Evgene-mmk
                              Member
                              • Nov 2020
                              • 44

                              #15
                              У меня получилось вот так
                              {"data":{"ActionsResult":[],"Accounts":[{"SmsNotification":{"SmsTimeFrom":"09:00","MoneyIn Sms":"No","MoneyOutSms":"No","PausedByDayBudgetSms ":"Yes","SmsTimeTo":"21:00"},"Login":"IVan","Amoun tAvailableForTransfer":"8033.33","Currency":"RUB", "Discount":0,"AccountID":408446,"Amount":"8333.33" ,"EmailNotification":{"SendWarn":null,"MoneyWarnin gValue":20,"PausedByDayBudget":"Yes","Email":"bla@ blabla.ds"},"AgencyName":null}]}}
                              Click image for larger version

Name:	amount.png
Views:	478
Size:	48.4 KB
ID:	418570

                              Comment

                              Working...