Ответы пользователя по тегу API
  • Как получить баланс api yadirect?

    @yuretzgt
    Кому интересно, сделал на питоне 3-м

    import requests
    from requests.exceptions import ConnectionError
    from time import sleep
    import json
    import sys
    # Метод для корректной обработки строк в кодировке UTF-8 как в Python 3, так и в Python 2
    if sys.version_info < (3,):
        def u(x):
            try:
                return x.encode("utf8")
            except UnicodeDecodeError:
                return x
    else:
        def u(x):
            if type(x) == type(b''):
                return x.decode('utf8')
            else:
                return x
    
    ReportsURL = 'https://api.direct.yandex.ru/live/v4/json/'
    token = 'ВАШ СУПЕР ТОКЕН'
    clientLogin = 'ЛОГИН ДО СОБАКИ'
    
    headers = {
        "Authorization": "Bearer " + token,
        "Client-Login": clientLogin,
        "Accept-Language": "ru",
        # 'processingMode': 'auto'
    }
    body = {
        "method": "AccountManagement",
        "token": token,
        "param": {
            "Action": "Get",
            "SelectionCriteria": {
                'Logins': [
                    clientLogin,
                ],
            },
        },
        'locale' : "ru",
    }
    
    json_body = json.dumps(body, indent=4)
    try:
        req = requests.post(ReportsURL, json_body, headers=headers)
        req.encoding = 'utf-8'
        if req.status_code == 200:
            print("Отчет создан успешно")
            print("RequestId: {}".format(req.headers.get("RequestId", False)))
            print("Содержание отчета: \n{}".format(u(req.text)))
            print("JSON-код запроса: {}".format(u(body)))
            print("JSON-код ответа сервера: \n{}".format(u(req.json())))
        else:
            print("Произошла непредвиденная ошибка")
            print("RequestId:  {}".format(req.headers.get("RequestId", False)))
            print("JSON-код запроса: {}".format(body))
            print("JSON-код ответа сервера: \n{}".format(u(req.json())))
        amount = json_response["data"]["Accounts"][0]["Amount"]
        print("Balans: " + amount)
    except ConnectionError:
            # В данном случае мы рекомендуем повторить запрос позднее
            print("Произошла ошибка соединения с сервером API")
            # Принудительный выход из цикла
            
    # Если возникла какая-либо другая ошибка
    except Exception as e: 
        # В данном случае мы рекомендуем проанализировать действия приложения
        print("Произошла непредвиденная ошибка - 1")
        print(e)
        # Принудительный выход из цикла
    Ответ написан
    2 комментария