Я загружаю видео в свою учетную запись Vimeo с использованием API и intridea/oauth2 в приложении Rails.Невозможно установить redirect_url для загрузки через API
Это, как я получить мой билет загрузки:
require 'oauth2'
require 'json'
client = OAuth2::Client.new CLIENT_ID, SECRET, site: 'https://api.vimeo.com'
token = OAuth2::AccessToken.new client, TOKEN
response = token.post '/me/videos?redirect_url=https://foobar.com'
body = JSON.parse response.body
puts body['upload_link_secure']
Конечной API я использую documented here. Предоставленная ссылка в ответ выглядит примерно так:
https://1511635511.cloud.vimeo.com/upload?ticket_id=...&redirect_url=https%3A%2F%2Fvimeo.com%2Fupload%2Fapi%3F...
Весь процесс работает отлично, видео загружается, но как вы можете увидеть Перенаправление URL не был заменен https://foobar.com
. Это означает, что я не получу video_id
обратно в свое приложение автоматически.
Вы, ребята, видите, что я делаю неправильно?
Приветствия
РЕШЕНИЕ
Как пояснил Austio параметры для POST отправляются в теле, а не в URL. Также для Vimeo API требуется, чтобы type
был установлен в POST
. В follogwing сниппеты работает сейчас:
response = token.post '/me/videos', body: { type: 'POST', redirect_url: 'https://foobar.com' }
Или:
response = token.post '/me/videos' do |request|
request.body = { type: 'POST', redirect_url: 'https://foobar.com' }
end
POST https://api.vimeo.com/me/videos является официальной конечной точкой API (документируется по адресу https://developer.vimeo.com/api/endpoints/me#POST/me/videos). Я исправил ошибку выше. Проблема все еще возникает. – elactic
Большое спасибо за ответ. Он указал мне правильно. хотя я понимаю, что вам нужно получить доступ к телу, а не к параметрам. – elactic
Еще один вопрос о заметке вашего сайта: я использую Postman, есть ли подобный клиент REST, поддерживающий OAuth2? Это был ограничивающий фактор. – elactic