首页 > 解决方案 > 将输入传递给python3中的Curl命令

问题描述

我目前正在使用 errbot,但在允许用户输入要与 curl 命令一起传递的消息时遇到了问题。我的插件如下所示:

@arg_botcmd('team_key', type=str)
@arg_botcmd('--message' , dest='message', type=str)
def oncall_page(self, msg, team_key=None, message=None):
  if team_key in page_list.keys():
     team_id = page_list[team_key]
     data = {"message_type":"CRITICAL","state_message":"{0}".format(message)}                                     
     response = requests.post('https://www.apiurl.com/{0}'.format( team_id), data)
     yield "Paging {0} ".format( team_id )

我的问题是这一行:

data = {"message_type":"CRITICAL","state_message":"{0}".format(message)}

这似乎完全使命令崩溃,我希望用户可以执行一个命令,例如“!oncall page team_name --message”

任何帮助,将不胜感激:)

标签: python-3.xcurlerrbot

解决方案


@arg_botcmd('team_key', type=str)
@arg_botcmd('--message' , dest='message', type=str)
def oncall_page(self, msg, team_key=None, message=None):
  if team_key in page_list.keys():
     team_id = page_list[team_key]
     text = str(message)
     msg_type = "critical"
     data = '{"message_type":"%s", "state_message":"%s"}' % (msg_type, text)
    # data = '{"message_type":"critical", "state_message":"%s"}'(text)
     URL = 'https://www.apiurl.com/{0}'.format( team_id)
     response = requests.post(URL , data) 

这是解决这个问题!


推荐阅读