如何解决无法从Google App脚本打开Slack模式
我正在尝试从GAS上单击按钮以打开松弛模式。目前,我正在发送具有此功能的交互式按钮:
function Send(){
var url = "my slack url here"
var payload =
{
"text": "Here's your interactive buttons message.","blocks": [
{
"type": "actions","elements": [
{
"type": "button","text": {
"type": "plain_text","text": "Click Me","emoji": true
},"value": "id_btn","action_id": "id_btn"
}
]
}
]
}
var options = {
"method": "post","contentType": "application/json","payload": JSON.stringify(payload)
};
UrlFetchApp.fetch(url,options);
}
但是,当我与按钮交互时,什么也没有发生。我当前的Get / Post方法如下:
function doGet(e){
return ContentService.createtextoutput("");
}
function doPost(e) {
if (typeof e !== 'undefined') {
// Extract the relevant data
var parameter = e.parameter;
var date = new Date();
var payload = JSON.parse(parameter.payload)
var trigger_id = payload.trigger_id;
var slackUrl = "https://slack.com/api/views.open";
var myToken = "Token I got after installing app to slack"
var payload_upd ={
"trigger_id": trigger_id,"type": "modal","view":{
"title": {
"type": "plain_text","text": "Gratitude Box","emoji": true
},"submit": {
"type": "plain_text","text": "Submit","close": {
"type": "plain_text","text": "Cancel","blocks": [
{
"type": "input","block_id": "my_block","element": {
"type": "plain_text_input","action_id": "my_action"
},"label": {
"type": "plain_text","text": "Say something nice!","emoji": true
}
}
]
}
}
// Send options
var options_upd = {
"headers": {"Authorization": myToken},"method": "post","payload": JSON.stringify(payload_upd),};
UrlFetchApp.fetch(slackUrl,options_upd);
}
}
我尝试了多种方法,可以在我的有效载荷和选项中组合trigger_id和令牌,但是找不到可行的方法。任何帮助将不胜感激,谢谢。
解决方法
好像您的有效载荷无效,因为"type": "modal"
应该是view的一部分。试试这个有效载荷:
var payload_upd = {
"trigger_id": trigger_id,"view": {
"type": "modal","title": {
"type": "plain_text","text": "Gratitude Box","emoji": true
},"submit": {
"type": "plain_text","text": "Submit","close": {
"type": "plain_text","text": "Cancel","blocks": [
{
"type": "input","block_id": "my_block","element": {
"type": "plain_text_input","action_id": "my_action"
},"label": {
"type": "plain_text","text": "Say something nice!","emoji": true
}
}
]
}
};
此外,请确保在“授权”标头中指定“承载者”。
var options_upd = {
"headers": {"Authorization": "Bearer " + myToken},"method": "post","contentType": "application/json","payload": JSON.stringify(payload_upd),};
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。