我正在尝试调用我的api,它是通过ngrok自托管的。 ngrok工作正常,因为我可以在浏览器中打开外部https站点并加载它。
那么,我有什么
松弛形式:
var request = require('request');
var RegisterMsgBuilder = function () { }
RegisterMsgBuilder.prototype.build = function (data) {
return {
"text": "Would you like to play a game?",
"attachments": [
{
"text": "Choose a game to play",
"fallback": "You are unable to choose a game",
"callback_id": "wopr_game",
"color": "#3AA3E3",
"attachment_type": "default",
"actions": [
{
"name": "game",
"text": "Chess",
"type": "button",
"value": "chess"
},
{
"name": "game",
"text": "Falken's Maze",
"type": "button",
"value": "maze"
},
{
"name": "game",
"text": "Thermonuclear War",
"style": "danger",
"type": "button",
"value": "war",
"confirm": {
"title": "Are you sure?",
"text": "Wouldn't you prefer a good game of chess?",
"ok_text": "Yes",
"dismiss_text": "No"
}
}
]
}
]
}
};
exports.RegisterMsgBuilder = RegisterMsgBuilder;
这会产生一个松弛的形式,有3个按钮。
我使用以下网址设置了交互式组件: https://xyz.ngrok.io/api/values
这个网址指向一个新的asp.net webapi项目。我在这里没有改变任何东西。它有一个看起来像的控制器:
namespace WebApplication2.Controllers
{
public class ValuesController : ApiController
{
// GET api/values
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
// GET api/values/5
public string Get(int id)
{
return "value";
}
// POST api/values
public void Post()
{
int x = 66;
}
}
}
点击我的松弛消息中的按钮什么也没做。怎么样?
答案 0 :(得分:0)
首先,您尚未对API采取任何形式的响应。所有控制器似乎在接收POST时都将x
设置为等于66
。
当有人在频道中点击该按钮时,系统会对您的操作网址发出POST请求。它将包含有关单击按钮,原始消息等的一些信息(https://api.slack.com/interactive-messages#responding)。您似乎没有从应用程序收到的POST中提取值 - 您肯定需要这样做。