使用Ruby的Twilio SMS

我一直在研究一个能读取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 ) 

正如我在评论中所写,你需要做的就是迭代你从filter_by_event_type_and_severity方法获得的equipments ,然后用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和电话号码,因此您需要将其添加回来