我正在尝试使用EventBrite的API POST(创建(事件。
我有身份验证密钥,但在格式化请求时遇到问题。
这是我的东西。
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
它告诉我:"无法将字符串转换为数组。"错误有什么想法吗?如果有人使用了EventBrite的API,除了这样格式化我的字符串,然后将其制作成JSON之外,还有更好的方法吗。
感谢
我不熟悉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