我正在使用Ruby在Slack和Build kite之间设置自定义斜杠命令。我正在获取正确的API调用,并且正在传递信息。一切似乎都正常,但是当我尝试设置json有效负载时,我似乎无法使用Slacks新格式。我使用旧格式,但是当我切换到新格式时,它中断了,只给了我一个字符串。
我尝试解析json,确保其有效,并使用其他方法(如response.body)。
此JSON将产生一个字符串:
[{
"type":"section",
"text":
{
"type":"mrkdwn",
"text":"*Deploy History:* Deploys in the last 6 hours"
}
}]
此JSON格式正确:
{
text: "",
attachments: [{
title: 'Deploy History',
text: 'Deploys in the last 6 hours',
:fields => [{
:title => 'Message',
:value => build_list[0].message,
:short => true
}, {
:title => 'Name',
:value => build_list[0].creator.name,
:short => true
}, {
:title => 'Finished at',
:value => build_list[0].finished_at,
:short => true
}],
color: 'good'
}]
}
第一个代码的预期结果看起来很漂亮,但它只是吐出来了:{“ type”:“ section”,“ text”:{“ type”:“ mrkdwn”,“ text”:“ < em>部署历史记录:在最近六个小时内进行部署“”}]
有效的底部代码的结果很漂亮
发送斜杠命令时调用的文件
module SlackLine::Commands
module DeployHistory extend self
def deploy_history
build_list = buildkite.process_history_event
presenter.deploy_history(build_list)
end
def presenter
SlackLine::Presenters::DeployHistoryPresenter
end
def buildkite
SlackLine::Services::BuildkiteHistoryService
end
end
end
这是我们对buildkite进行api调用的文件
def deploy_stats
finished_from = 6.hours.ago.to_time.iso8601
options = {
branch: 'master',
finished_from: finished_from,
state: 'finished'
}
build_list = client.pipeline_builds('calendly', 'calendly', options)
build_list
end
答案 0 :(得分:0)
解决了!我所要做的就是添加一个块。感谢您与我保持联系,希望这对您有所帮助!
public class Word : IEntity
{
public virtual int WordID { get; set; }
public virtual string WordText { get; set; }
public virtual string Pronunciation { get; set; }
}