JSON
Примеры взаимодействия с API в формате JSON на Python.
Получение сведений о клиенте
Пример демонстрирует вызов метода GetClientInfo.
import json, urllib2
#адрес для отправки json-запросов
url = 'https://api.direct.yandex.ru/v/json/'
#данные для OAuth-авторизации
token = 'e4d3b4d2a7444fa384a18cda5cd1c8d9'
#логин в Директе
login = 'agrom'
#структура входных данных (словарь)
data = {
'method': 'GetClientInfo',
'token': token,
'locale': 'ru',
'param': [login]
}
#конвертировать словарь в JSON-формат и перекодировать в UTF-8
jdata = json.dumps(data, ensure_ascii=False).encode('utf8')
#выполнить запрос
response = urllib2.urlopen(url,jdata)
#вывести результат
print response.read().decode('utf8')
Вызов финансовых методов
При вызове финансовых методов необходимо дополнительно указывать финансовый токен и номер финансовой операции (см. Доступ к финансовым методам).
Для примера вызовем метод CreateInvoice, который создает счет на оплату. Ниже показано формирование финансового токена. Исходными данными являются: мастер-токен (получают в интерфейсе Яндекс Директа), номер финансовой операции, название метода, логин пользователя.
import hashlib
masterToken = 'AEgchkX2M3FBL8lU'
operationNum = 119
usedMethod = 'CreateInvoice'
login = 'agrom'
financeToken = hashlib.sha256(masterToken + str(operationNum) + usedMethod + login).hexdigest()
print financeToken
Создается финансовый токен для однократного вызова метода CreateInvoice от имени пользователя agrom. Ниже показан пример токена.
7215f95e84a766971d8ec4eb5a39ae96505b3a5529a91e5a03e5943565a6e6c7
Финансовый токен и номер финансовой операции включают в структуру входных данных, как показано ниже.
#структура входных данных (словарь)
data = {
'method': 'GetCreditLimits',
'token': token,
'finance_token': financeToken,
'operation_num': operationNum,
'param': ['agrom'],
'locale': 'ru'
}