Python 我的slack应用程序似乎无法进行交互

Python 我的slack应用程序似乎无法进行交互,python,aws-lambda,aws-api-gateway,slack,slack-api,Python,Aws Lambda,Aws Api Gateway,Slack,Slack Api,我是slack应用程序开发的新手。在本页之后:,我正在尝试创建一个简单的交互式slack应用程序 由斜杠命令启动 可以通过按钮与用户交互 我使用AWSAPI网关和Lambda作为后端。Lambda函数是用Python 3.6编写的 我成功地创建了斜杠命令,但在按下按钮后更新消息失败 我的应用程序的精确结构 当我在slack频道中键入slash命令/test时,我的应用程序向API网关发出post请求(https://xxx.execute-api.ap-northeast-1.amazona

我是slack应用程序开发的新手。在本页之后:,我正在尝试创建一个简单的交互式slack应用程序

  • 由斜杠命令启动
  • 可以通过按钮与用户交互
我使用AWSAPI网关和Lambda作为后端。Lambda函数是用Python 3.6编写的

我成功地创建了斜杠命令,但在按下按钮后更新消息失败

我的应用程序的精确结构 当我在slack频道中键入slash命令
/test
时,我的应用程序向API网关发出post请求(
https://xxx.execute-api.ap-northeast-1.amazonaws.com/prod/test
)和lambda函数通过按钮返回以下响应

lambda函数如下所示:

导入json
导入日期时间
def lambda_处理程序(事件、上下文):
尝试:
答复={
“状态代码”:200,
“响应类型”:“在信道中”,
“区块”:[
{
“类型”:“节”,
“文本”:{
“类型”:“mrkdwn”,
“文本”:“这是一个带按钮的剖面块。”
},
},
{
“类型”:“操作”,
“要素”:[
{
“类型”:“按钮”,
“文本”:{
“类型”:“纯文本”,
“文本”:“按钮”,
“表情符号”:真的吗
},
“操作id”:“测试”
}
]
}
]
}
返回响应
例外情况除外,如e:
返回{“error”:str(e)}
按下按钮后,我的应用程序向另一个API网关发送post请求(
https://xxx.execute-api.ap-northeast-1.amazonaws.com/prod/test2
)和另一个lambda函数接收如下请求

{  
   'type':'block_actions',
   'team':{  
      'id':'xxx',
      'domain':'xxx'
   },
   'user':{  
      'id':'xxx',
      'username':'xxx',
      'name':'xxx',
      'team_id':'xxx'
   },
   'api_app_id':'xxx',
   'token':'xxx',
   'container':{  
      'type':'message',
      'message_ts':'1564687520.001900',
      'channel_id':'xxx',
      'is_ephemeral':False
   },
   'trigger_id':'xxx.yyy.zzz',
   'channel':{  
      'id':'xxx',
      'name':'slack_app_test'
   },
   'message':{  
      'type':'message',
      'subtype':'bot_message',
      'text':"This content can't be displayed.",
      'ts':'1564687520.001900',
      'bot_id':'xxx',
      'blocks':[  
         {  
            'type':'section',
            'block_id':'ygl6',
            'text':{  
               'type':'mrkdwn',
               'text':"This is a section block with a button. {'token': 'xxx', 'team_id': 'xxx', 'team_domain': 'xxx', 'channel_id': 'xxx', 'channel_name': 'slack_app_test', 'user_id': 'xxx', 'user_name': 'mail', 'command': '/recommend', 'response_url': '<https://hooks.slack.com/commands/xxx/yyy/zzz>', 'trigger_id': 'xxx.yyy.zzz'}",
               'verbatim':False
            }
         },
         {  
            'type':'actions',
            'block_id':'jlzD',
            'elements':[  
               {  
                  'type':'button',
                  'action_id':'test',
                  'text':{  
                     'type':'plain_text',
                     'text':'Button',
                     'emoji':True
                  }
               }
            ]
         }
      ]
   },
   'response_url':'https://hooks.slack.com/actions/xxx/yyy/zzz',
   'actions':[  
      {  
         'action_id':'test',
         'block_id':'jlzD',
         'text':{  
            'type':'plain_text',
            'text':'Button',
            'emoji':True
         },
         'type':'button',
         'action_ts':'1564687524.157943'
      }
   ]
}
当我查看上面lambda函数的Cloudwatch日志时,该函数似乎成功地向我的slack应用程序发送了一条消息

问题
我希望我的应用程序显示一条消息
SuccessSlack希望您除了发送响应外,还使用HTTP 200发送对按钮按下请求的确认响应。您正在返回
None
,我认为这可能是问题所在。尝试用HTTP 200来响应。来源:Slack希望您除了响应之外,还为按钮按下请求发送一个HTTP 200确认响应。您正在返回
None
,我认为这可能是问题所在。尝试用HTTP 200来响应。资料来源: