2017-02-16 3 views
1

Я хочу получить токен доступа без аутентификации из vimeo api в моем приложении rails. Однако запрос на запись с использованием HTTParty гем возвращает следующий ответ от APIНе удается отправить заголовок в vimeo с помощью HTTParty

{"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) 

Я проверил, что учетные данные правильны, а также пытались заменить: заголовок с: заголовки, и различные комбинации использования строки вместо символа в хеше заголовка. Но никто из них не работает.

Однако вызов по одному и тому же URL-адресу с использованием тех же учетных данных успешно выполняется через почтовый клиент.

Редактировать Как уже упоминалось в ответе, мы должны использовать заголовки (множественное число) во время вызова. Однако я уже пробовал это, но проблема сохраняется. Использование basic_auth вместо отправки заголовков, похоже, работает, однако я не могу понять, почему отправка заголовков через HTTParty не работает, но аналогичный вызов работает через Postman.

ответ

1

Параметр: headers определенно множественный, но поскольку вы используете базовый auth, вы также можете использовать базовый auth-параметр HTTParty. Таким образом, ваш запрос станет:

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 } 
    ) 

Используя свои кредитки (вы имели в виду, чтобы отправлять настоящие кредитки?) Я получил

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

Использование basic_auth вместо заголовков работали! Однако любая идея, почему опция заголовков не работает? Также я заметил, что проблема подходит только для поствызов, заголовки для звонка работают нормально. (Как примечание, это приложение предназначалось только для тестирования, поэтому я считаю, что публикация реальных учетных данных не принесет никакого вреда?) – penguin2048

Смежные вопросы