【发布时间】:2017-04-28 15:18:31
【问题描述】:
我无法通过我正在编写的 ruby 脚本发布到 slack 端点:
#!/usr/bin/env ruby
#Notification Script Test
def send_slack_message
slack_rooms = [ '#test_channel_notify' ]
slack_token_file = (File.join(ENV['HOME'], '.slack_api_token'))
slack_api_token = (File.open(slack_token_file).readlines)[0].chomp
msg = 'This is a test message send'
slack_url = "https://slack.com/api/chat.postMessage"
%x{curl -X POST -d 'token=#{slack_api_token}\&channel=#{slack_rooms}\&text=#{msg}' '#{slack_url}'}
end
send_slack_message
在命令行中硬编码所有参数的 curl 命令正常工作,我的消息被发布:
curl -X POST -d 'token=xxxxx-11111111111&channel=#test_channel_notify&text=This is a test' 'https://slack.com/api/chat.postMessage'
但是从脚本中,我只得到以下返回:
Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 154 100 40 100 114 289 825 --:--:-- --:--:-- --:--:-- 832
如果有人知道我做错了什么,将不胜感激!此外,我不想为了做到这一点而需要任何模块,我也不应该这样做。
【问题讨论】:
-
您期待什么?你怎么知道没用?为什么要使用 curl 而不是 Ruby 可用的几种 HTTP 方法中的任何一种?
-
我不想下载任何模块,包括 http,我希望在我的频道中看到一条消息。我是从命令行获取的,但不是从我的脚本获取的。
-
标准 Ruby 库中有一个简单的。