Я использую API Bloomberg (C ++), чтобы сделать проект.
Я уже смог отправить запрос с личностью.
Например, я отправляю запрос так:
Request request = session.createRequest("ReferenceDataRequest");
request.append("securities", "IBM US Equity");
request.append("fields", "PX_LAST");
session.sendRequest(request, identity, CorrelationId(20));
После отправки этого запроса я получаю ответ.
Но когда я освобождаю ответ, я всегда получаю исключение: «NO_AUTH, поле не разрешено пользователям с подачей данных».
функция для обработки ответа:
void handleResponseEvent(Event e, Identity identity)
{
MessageIterator msgIter(e);
while (msgIter.next())
{
Message message = msgIter.message();
message.print(cout);
}
}
Я знаю, что это не правильно, потому что я не использовал «идентичность». Я думаю, именно поэтому я получил исключение «NO_AUTH».
Подскажите, пожалуйста, как выпустить ответ с удостоверением личности?
Чтобы уточнить — я использую B-PIPE, а не D-API, для подключения к Bloomberg.
Используя B-PIPE, вы убедились, что ваш OS_LOGON
или же APPLICATION
авторизованы для данных, которые вы запрашиваете?
Если вы загрузите пакет B-PIPE из WAPI, появится демонстрационное приложение (Windows), которое можно использовать для проверки учетных данных для входа в систему независимо от кода, который вы можете использовать …
/path/to/BPipe/APIv3/bin/BLPAPIDemo.exe
Установите тип аутентификации, хост и порт:
Затем протестируйте запрос данных, установив тикеры / поля / даты и нажав кнопку «Выполнить»:
Если вы получили ошибку — например, Проблемы с разрешением EID — вы знаете, что у вас нет аутентификации для этих данных. Если это так, вам необходимо связаться с менеджером B-PIPE в вашей фирме / представителем Bloomberg.
Если вы не получили ошибку / действительно получили данные, значит, проблема в вашем коде где-то …
Как вы инициализируете параметр «identity», который передается в sendRequest ()? Если вы используете Desktop Api (DAPI), то параметр идентичности не требуется, и запрос может быть отправлен следующим образом:
session.sendRequest(request, CorrelationId(20));