如何在没有turncontext的情况下获得特定userid和connectionname的令牌



我正在后台任务中做一些工作,并且有可用的userid(从activity.from.id中提取(和connectionname。

如何从机器人服务获取用户令牌?-turncontext不可用。

请记住,Bot Framework REST API调用必须经过授权,因此除了用户ID和连接名称外,您还需要机器人程序的应用程序凭据。如果你拥有所有这些,你可以获得这样的用户令牌:

private async Task<string> GetUserTokenAsync(string userId, string connectionName, AppCredentials appCredentials)
{
var client = new OAuthClient(new Uri(OAuthClientConfig.OAuthEndpoint), appCredentials);
var response = await client.UserToken.GetTokenAsync(userId, connectionName);
return response.Token;
}

这在某种程度上源于可以在BotFrameworkAdapter.cs中找到的代码,但经过修改后不需要回合上下文。

最新更新