Rails가 아닌 Sinatra를 사용하여 내 루비 기반 웹 응용 프로그램의 변경 사항에 대한 알림 시스템 역할을하는 들어오는 webhook이 있습니다. 여기 텍스트에 아포스트로피가있는 경우 들어오는 웹 훅이 느려지지 않습니다.
은은 webhook로 데이터를 전송 루비 방법에 대한 코드이다 (AS 검열 된 webhook_url 민감한 정보 [...]가) 방법에서def notify_slack(text, user)
webhook_url = "https://hooks.slack.com/services/[...]/[...]/[...]"
payload = {
:channel => "#app-changelog",
:username => "Changelog Bot",
:attachments => [
{
:fields => [
{
:title => "Change Description",
:value => text
},
{
:title => "Changed By:",
:value => user,
:short => true
}
]
}
]
}.to_json
cmd = "curl -X POST --data-urlencode 'payload=#{payload}' #{webhook_url}"
system(cmd)
end
에서, text
인수 인 변경 설명을 포함하는 문자열이며 user
인수는 변경 책임자의 이름을 보유하는 문자열입니다.
그러나 text
인수에 아포스트로피 '
이 있으면 여유 공간에 아무 것도 표시되지 않습니다.
나는 text
인수에 '
탈출 시도했다, 그러나 그것은 작동하지 않았다 - 나는 아포스트로피 제거에 의지했지만, 사용자가 아무것도에 아포스트로피를 포함 할 수있는 상황을 설명 할 수 있습니다. 슬랙의 메시지 빌더에 따르면 아포스트로피가 가능해야합니다.
이 문제를 해결하기 위해 무엇을 할 수 있습니까?
_Sidenote : _ 커널 _ 시스템 _ 호출 _return_을 확인해야합니다. 거짓이라면, curl 명령 자체에 뭔가 잘못된 것이 있습니다. – mudasobwa
왜 명령 줄 도구 (컬)를 사용하여 HTTP 요청을 만드십니까? Ruby는'Net :: HTTP'와 함께 제공되며 몇몇 HTTP 젬이 있습니다. – Stefan