在使用 Wistia API 时,我遇到过这种奇怪的现象:浏览器中的 200,HTTParty 中的 404。
目前,我有一个带有嵌入类的视频模块,如下所示:
module Video
class Embed
include ActiveModel::Model
include HTTParty
base_uri 'https://fast.wistia.net/oembed'
format :json
default_params api_password: ENV['WISTIA_PASSWORD']
class << self
def find(hashed_id)
get("", query: { url: url_query("#{hashed_id}") })
end
private
def url_query(hashed_id)
"http%3A%2F%2Fhome%2Ewistia%2Ecom%2Fmedias%2F#{hashed_id}"
end
end
end
end
执行Video::Embed.find(@video.hashed_id)
代码时,输出的代码在日志中如下所示:
HTTP GET (59.97ms) https://fast.wistia.net:443/oembed?api_password=not_getting_my_password&url=http%3A%2F%2Fhome%2Ewistia%2Ecom%2Fmedias%2Fth3-3Xamp13
Response status Net::HTTPNotFound (404)
Response body
但是,如果我粘贴我的 url,我可以在浏览器 (200) 中看到 JSON 负载。
密码正确(已测试),hashed_id 正确(已测试),通过将 url 粘贴到浏览器中测试了 URL。
我感觉这是一个跨域问题,但即便如此我也不知道如何解决这个问题。
更新:执行 curl 会像浏览器一样返回 JSON。