无法使用 HTTParty 将 header 发送到 vimeo

Can not send header to vimeo using HTTParty

我想在我的 rails 应用程序中从 vimeo api 获取未经身份验证的访问令牌。但是 post 请求在 API

的响应后使用 HTTParty gem returns 发出
{"error"=>"You must provide a valid authenticated access token."}

发送请求的代码是

header = "basic " + Base64.encode64("****07974be" + ":" + "****ygYBI7I")

token = HTTParty.post("https://api.vimeo.com/oauth/authorize/client",
          :body => {:grant_type => 'client_credentials'},
          :header => {'Authorization' => header}
        )

json=JSON.parse(token)

我已检查凭据是否正确,还尝试将 :header 替换为 :headers,以及在 header 哈希中使用字符串而不是符号的各种组合。但是 none 有效。

但是,通过 Postman 使用相同的凭证调用相同的 URL 是成功的。

Edit 正如答案中提到的,我们需要在拨打电话时使用 headers(复数)。但是,我已经尝试过了,但问题仍然存在。使用 basic_auth 而不是发送 headers 似乎可行,但我不明白为什么通过 HTTParty 发送 headers 不起作用,但类似的调用正在通过 Postman 进行。

:headers 选项肯定是复数,但是既然你使用的是basic auth,你也可以使用HTTParty的basic auth选项。所以你的请求会变成:

username = "YOUR-USER-HERE"
password = "YOUR-PASSWORD-HERE"

token = HTTParty.post("https://api.vimeo.com/oauth/authorize/client",
      body: {:grant_type => 'client_credentials'},
      basic_auth: { username: username, password: password }
    )

使用您的信誉(您是要 post 真正的信誉吗?)我得到了

{"access_token"=>"REDACTED", "token_type"=>"bearer", "scope"=>"public", "app"=>{"name"=>"Fable", "uri"=>"/apps/REDACTED"}}