我一直致力于一个能够读取CSV excel文件并过滤通过短信发送的信息的程序。目前,该程序只能通过短信发送一行过滤信息。应该修改什么能够一行一行地发送?
目前,代码在第1列和第2列搜索“medium”和“2”。它将发送第0列和第4列。因此结果将是“DT3 / SIG”,“修复Windows” 但它不会发出第5行 - “90430 / RSO”,“修复灯”
require 'rubygems'
require 'twilio-ruby'
require "csv"
def load_alarms
CSV.read 'alarms.csv', {col_sep: ';'}
end
def filter_by_event_type_and_severity(alarms, event_type, severity)
alarms.select do |alarm|
alarm[1] == event_type && alarm[2].to_i == severity.to_i
end
end
target_alarms = filter_by_event_type_and_severity(
load_alarms, 'medium', 2)
equipments = target_alarms.map { |alarm| [alarm[0], alarm[3]] }
p equipments
account_sid = 'ACCOUNT_ID'
auth_token = 'AUTH_TOKEN'
client = Twilio::REST::Client.new account_sid, auth_token
client.api.account.messages.create(
from: 'SENDER_PHONE',
to: 'TARGET_PHONE',
body: equipments
)
答案 0 :(得分:3)
正如我在评论中所写,您需要做的就是迭代equipments
方法获得的filter_by_event_type_and_severity
,并使用twillo
api逐个发送它们:
require 'rubygems'
require 'twilio-ruby'
require "csv"
def load_alarms
CSV.read 'alarms.csv', {col_sep: ';'}
end
def filter_by_event_type_and_severity(alarms, event_type, severity)
alarms.select do |alarm|
alarm[1] == event_type && alarm[2].to_i == severity.to_i
end
end
target_alarms = filter_by_event_type_and_severity(load_alarms, 'medium', 2)
equipments = target_alarms.map { |alarm| [alarm[0], alarm[3]] }
account_sid = 'ACCOUNT_ID'
auth_token = 'AUTH_TOKEN'
client = Twilio::REST::Client.new account_sid, auth_token
# Here is the iteration
equipments.each do |equipment|
client.api.account.messages.create(
from: 'SENDER_PHONE',
to: 'TARGET_PHONE',
body: equipment
)
end
我删除了您的account_id,auth_token和电话号码,因此您需要将其添加回来