我正在尝试使用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之外,还有更好的方法吗?
谢谢
答案 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