Токен доступа из Pinterest API не возвращается с помощью Rails - PullRequest
0 голосов
/ 21 октября 2019

В среде / разработке localhost у меня возникают проблемы с получением access_token от pinterest (на основе кода авторизации) для получения идентификаторов платы и пин-кода. Pinterest возвращает код с начального «разрешить [сайт] ... нажмите ОК». Этот код затем используется в запросе post для получения access_token. Затем токен доступа сохраняется для получения выводов, плат и т. Д. Работает следующий процесс (в основном с использованием Почтальона)

    Connect to Pinterest in the browser
    Click "Ok"
    Authentication "code" is generated (only valid for a few minutes)
    Pasting the given code into the following post request URL in 
    Postman returns the access token.
https://api.pinterest.com/v1/oauth/token?client_id=[client_id]&client_secret=[client_secret]&grant_type=authorization_code&code=[given_code]

Однако у меня возникают трудности с получением правильного ответа от Rails. Я пытался использовать драгоценные камни rest-client и pinterest-api, но не смог их решить. Я начал изучать библиотеку net / https, которая поставляется с Rails. Из того, что я знаю, получение правильного ответа и получение значения токена доступа в Rails является нашей «застрявшей» точкой. Исходя из тестов Postman, оттуда мы сможем получить идентификаторы пин-кода и платы и т. Д.

Gems: rest-client и net / https пытались заставить ssl

Попытка с использованием RestClient:

RestClient.post 'https://api.pinterest.com/v1/oauth/token', {client_id: @client_id, client_secret: @secret_key, grant_type: 'authorization_code', code: @response_code}

Я также попытался использовать следующий синтаксис POST:

RestClient.post 'https://api.pinterest.com/v1/oauth/token', {client_id: @client_id, client_secret: @secret_key, grant_type: 'authorization_code', code: @response_code}

Попытка использования net / https:

Net::HTTP.post_form(uri, 'q' => [client_id: @client_id, client_secret: @secret_key, grant_type: 'authorization_code', code: @response_code])

Сообщения об ошибках не возвращаются, статус httpsравно 200, но ответ не содержит access_token.

...