Получение токена доступа пользователя из ActivityHandler — Botframework Python SDKPython

Программы на Python
Ответить
Anonymous
 Получение токена доступа пользователя из ActivityHandler — Botframework Python SDK

Сообщение Anonymous »

Приложение Teams Bot было разработано с использованием пакета SDK Python для Bot Framework (v4.14.4), в котором BotFrameworkAdapter и расширенный класс ActivityHandler были правильно инициализированы. Бот работает правильно, позволяя взаимодействовать и отвечать в чате.
Цель — получить токен доступа пользователя из входящего запроса (токен, включенный в заголовок, когда пользователь отправляет сообщение). для выполнения внешнего вызова API. Однако только объект TurnContext доступен в методах on_turn или on_message_activity ActivityHandler.
В app.py метод маршрутизации для /api/messages следующий:

Код: Выделить всё

# bot_framework_adapter and activity_handler are initialized at the global level

async def messages(req: Request) -> Response:
# .. some other logic
auth_token = req.headers.get("Authorization", "")
response = await bot_framework_adapter.process_activity(activity, auth_token, activity_handler.on_turn)
Ссылка: https://github.com/microsoft/BotBuilder ... 1.qnamaker
Мое приложение почти реализует приведенный выше образец ссылки, за исключением on_message_activity в BOT/ActivityHandler.
В настоящее время я переопределил process_activity иprocess_activity_with_identity в классе BotFrameworkAdapter в моем расширенном классе и добавил новую пару ключ-значение для этого auth_token в словаре context.turn_state.
Но возможно ли получить доступ/реконструировать этот auth_token в методах ActivityHandler (возможно, используя объект TurnContext), или есть ли Рекомендуемый обходной путь для выполнения внешнего вызова API с той же авторизацией пользователя, которая использовалась для бота?
Примечание. Я использую этого бота через приложение Microsoft Teams с помощью службы Azure Bot. Итак, auth_token, о котором я говорил ранее, — это токен, отправляемый из приложения Teams.
Примечание. SDK botframework выводится из эксплуатации, но у меня уже есть несколько ботов, в производстве. На данный момент я ищу быстрое решение/обходной путь, если это возможно.
Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/792 ... python-sdk
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»