Open5

csvファイルを作ってmarketoにデータ送信

toketoke

こんな感じでやれば良さそう

このコードの通り、csvファイルを用意して、送信してやらないといけない
https://github.com/raszi/mrkt/blob/f6a59942ec42cf176b1ecd5d28212d54d53eb506/lib/mrkt/concerns/import_leads.rb

module Mrkt
  module ImportLeads
    def import_lead(file, format = 'csv', lookup_field: nil, list_id: nil, partition_name: nil)
      params = {
        format: format,
        file: ::Faraday::UploadIO.new(file, 'text/csv')
      }

      optional = {
        lookupField: lookup_field,
        listId: list_id,
        partitionName: partition_name
      }

      post('/bulk/v1/leads.json', params, optional)
    end

csvファイルの作り方

公式
https://docs.ruby-lang.org/ja/latest/class/CSV.html

require 'csv'

# ファイルへ書き込み
CSV.open("path/to/file.csv", "wb") do |csv|
  csv << ["row", "of", "CSV", "data"]
  csv << ["another", "row"]
  # ...
end

良さげな作り方
https://qiita.com/japwork/items/76fb527b1a49d93b7f83

def send_posts_csv(posts)
    csv_data = CSV.generate do |csv|
      column_names = %w(投稿者名 タイトル 本文)
      csv << column_names
      posts.each do |post|
        column_values = [
          post.user.name,
          post.title,
          post.body,
        ]
        csv << column_values
      end
    end
    send_data(csv_data, filename: "投稿一覧.csv")
  end
toketoke

単純なcsvファイル作って送れば良いだけな気がする