Rails对Eventbrite的POST请求不起作用

时间:2018-07-12 23:22:37

标签: ruby-on-rails json api http eventbrite

我正在尝试使用EventBrite的API POST(创建)事件。

我有auth密钥,但在格式化请求时遇到问题。

这就是我所拥有的。

def self.syndicate_event
    event = Event.first
    body_string =
    "{
        'event': {
            'name': {
              'html': #{event.name}
            },
            'description': {
              'html': #{event.description}
            },
            'start': {
              'utc': #{event.start},
              'timezone': #{event.start_timezone},
            },
            'end': {
              'utc': #{event.end},
              'timezone': #{event.end_timezone},
            },
            'currency':#{event.currency}
        }
    }"
    json_body = body_string.to_json
    respo = HTTP.auth("Bearer mytoken")
    .post("https://www.eventbriteapi.com/v3/events/",
            params: json_body
          )
  end

它给我:“无法将String转换为Array。”错误。有什么想法吗?而且,如果有人使用EventBrite的API,除了格式化这样的字符串然后将其转换为JSON之外,还有更好的方法吗?

谢谢

1 个答案:

答案 0 :(得分:1)

我对EventBrite API不熟悉,但是json_body字符串格式错误。您可以通过执行JSON.parse(json_body)来验证json是否有效,并且该方法应返回json的哈希表示。如果格式错误,则会引发错误。

我会选择在哈希实例上使用to_json方法,以确保json不会格式错误。

类似的东西:

body_object = 
    { event: {
        name: {
          html: event.name
        },
        description: {
          html: event.description
        }...,
        currency: event.currency }
    }
json_body = body_object.to_json