【发布时间】:2020-02-06 18:39:14
【问题描述】:
我正在尝试使用 java/spring 制作 viber bot(公共帐户)。我成功地为机器人设置了 webhook(通过将它部署到 heroku 并发出发布请求
{
"url":"https://my.host.com"
}
使用邮递员),现在我正在尝试接收来自用户的消息。问题是我是使用 spring 的新手,实际上并不知道如何接收任何 viber 事件。
这是我的代码(只是检查我是否可以接收 viber 回调):
@RestController
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@RequestMapping
public String request(@RequestHeader("X-Viber-Content-Signature") String serverSideSignature) {
System.out.println("Here we go!");
System.out.println(serverSideSignature);
return "Hello world!";
}
}
但是,这不起作用。如果我使用 Postman 向所需的serverSideSignature(文档中的示例)提出请求,例如
{
"event":"message",
"timestamp":1457764197627,
"message_token":4912661846655238145,
"sender":{
"id":"01234567890A=",
"name":"John McClane",
"avatar":"http://avatar.example.com",
"country":"UK",
"language":"en",
"api_version":1
},
"message":{
"type":"text",
"text":"a message to the service",
"media":"http://example.com",
"location":{
"lat":50.76891,
"lon":6.11499
},
"tracking_data":"tracking data"
}
},
我可以看到控制台输出。但是,如果我向机器人发送消息(甚至不从日志中获取任何信息),它就不起作用。我想问题是我不明白 viber 如何将任何信息发送到我的 webhook,但也许有人可以为我解释一下?非常感谢。
【问题讨论】: