0

在使用 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。

4

0 回答 0