【发布时间】:2019-05-18 07:33:11
【问题描述】:
我使用 spring boot 和 botbuilder-java 库在微软团队中创建一个机器人。我在机器人框架上注册了我的机器人。我使用 ngrok 制作代理,以便 bot 框架可以访问我的本地端口。然后当我发送请求然后响应时。我得到了 com.microsoft.bot.connector.models.ErrorResponseException: 状态码 401,
我已经有了 appId 和 appPassword,但是当我发送响应时,currentToken 为空。我想也许这就是问题所在。但我不知道如何配置它。
@Configuration
@ComponentScan
@EnableAutoConfiguration
public class BotConfig {
@Autowired
private Environment environment;
@Bean(name = "credentials")
public MicrosoftAppCredentials getCredentials() {
return new MicrosoftAppCredentials("6b157339-e091-4c33-b9e3-7e7e035d006e", "<password>");
}
@Bean
public List<ResourceResponse> getResponses(){
return new ArrayList<>();
}
}
这是我的处理程序
@RestController
@RequestMapping(path = "/api/messages")
public class BotMessagesHandler {
@Autowired
private MicrosoftAppCredentials credentials;
@Autowired
private List<ResourceResponse> responses;
@PostMapping(path = "")
public List<ResourceResponse> create(@RequestBody @Valid
@JsonDeserialize(using = DateTimeDeserializer.class) Activity activity) {
ConnectorClient connector =
new ConnectorClientImpl(activity.serviceUrl(), credentials);
Activity echoActivity = ActivityCreator.createEchoActivity(activity);
Activity checkedActivity = ActivityCreator.createSpellCheckedActivity(activity);
Conversations conversation = ConversationCreator.createResponseConversation(connector);
ResourceResponse echoResponse =
ResourceResponseSender.send(conversation, activity, echoActivity);
responses.add(echoResponse);
ResourceResponse spellCheckedResponse =
ResourceResponseSender.send(conversation, activity, checkedActivity);
responses.add(spellCheckedResponse);
return responses;
}
}
com.microsoft.bot.connector.models.ErrorResponseException: Status code 401,
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_211]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_211]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_211]
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_211]
at com.microsoft.rest.ServiceResponseBuilder.build(ServiceResponseBuilder.java:122) ~[client-runtime-1.2.1.jar:na]
at com.microsoft.azure.AzureResponseBuilder.build(AzureResponseBuilder.java:56) ~[azure-client-runtime-1.2.1.jar:na]
at com.microsoft.bot.connector.implementation.ConversationsImpl.sendToConversationDelegate(ConversationsImpl.java:510) ~[bot-connector-4.0.0-a1.jar:na]
at com.microsoft.bot.connector.implementation.ConversationsImpl.access$200(ConversationsImpl.java:48) ~[bot-connector-4.0.0-a1.jar:na]
at com.microsoft.bot.connector.implementation.ConversationsImpl$12.call(ConversationsImpl.java:495) ~[bot-connector-4.0.0-a1.jar:na]
at com.microsoft.bot.connector.implementation.ConversationsImpl$12.call(ConversationsImpl.java:491) ~[bot-connector-4.0.0-a1.jar:na]
【问题讨论】:
标签: java botframework