gpt4 book ai didi

ruby - 发布请求到 Slack 端点 Ruby 的问题

转载 作者:数据小太阳 更新时间:2023-10-29 08:43:16 25 4
gpt4 key购买 nike

我在通过我正在编写的 ruby​​ 脚本发布到松弛端点时遇到问题:

#!/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

如果有人知道我做错了什么,将不胜感激!此外,我不想要求任何模块才能执行此操作,我也不应该这样做。

最佳答案

您将 channel 指定为数组,因此如果您未指定哪个值或索引,它将作为数组添加到您的请求中。如果您有多个尝试遍历 slack_rooms 数组中的每个值或仅指定第一个元素“slack_rooms.first”。

%x{curl -X POST -d 'token=#{slack_api_token}&channel=#{slack_rooms.first}&text=#{msg}' #{slack_url}} 

请注意 slack_url 也是一个变量,但在 curl 请求中它不需要用引号指定。

而且您不需要反斜杠-es 来加入参数,只需&

关于ruby - 发布请求到 Slack 端点 Ruby 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43683640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com