Ошибка: полученный токен имеет неправильный тип токена Как должен выглядеть токен?

Недавно я зарегистрировался в Microsoft Azure и настроил учетную запись Cognitive Services. Используя инструкции из Документация по API перевода текста, мне удалось получить токен аутентификации из службы /issueToken с использованием интерактивного онлайн-примера. Однако, если я хочу использовать этот токен (например, для интерактивного / перевести пример) я получаю ответ

<html><body><h1>Argument Exception</h1><p>Method: Translate()</p><p>Parameter: </p><p>Message: The received token is of incorrect token type.</p><code></code><p>message id=0344.V2_Rest.Translate.3D8A6FF1</p></body></html>

Что я делаю не так? Как должен выглядеть токен и в каком формате я должен его предоставить? В онлайн-примере я указал токен, установив в поле appid значение «Bearer [token]», где [token] — это ответ от < em>/issueToken.

В моем случае токен представляет собой строку длиной 687 символов, которую можно разделить на три части (используя '.' в качестве разделителя). Первые две части имеют кодировку base64 и просто содержат некоторую информацию в кодировке JSON, которая остается неизменной (за исключением поля даты истечения срока действия). Третья и последняя часть каждый раз меняется и не может быть декодирована с помощью base64. Вместо предоставления полного токена я также пытался просто использовать различные подстроки полного токена, но пока безуспешно.

Я также попытался пройти аутентификацию через curl, используя заголовок Authentication вместо поля appid, что также не сработало для меня.


person Murp    schedule 24.11.2016    source источник
comment
Вы работаете над С#?   -  person Matias Quaranta    schedule 24.11.2016
comment
Да, я хочу использовать C# для реального проекта. Но поскольку аутентификацию Azure можно выполнить с помощью всего, что поддерживает запросы GET и POST, я был бы рад заставить ее работать на любом языке.   -  person Murp    schedule 25.11.2016


Ответы (1)


Маркер на самом деле должен выглядеть так, как он описан в тексте вопроса (по крайней мере, на данный момент). Проблема в моем случае заключалась в том, что я использовал неправильный ключ подписки. Обратите внимание: вы получаете разные ключи для API перевода и API речи; даже несмотря на то, что оба они работают под управлением Cognitive Services, и даже если вы подключаетесь к обоим через одни и те же ресурсы.

Я публикую это как ответ на свой вопрос, потому что я хочу подтвердить, что все шаги, перечисленные выше, верны, и потому что я надеюсь, что это может помочь людям, которые совершают ту же ошибку, что и я.

person Murp    schedule 25.11.2016