2015-07-14 3 views
0

Я хочу сделать http-запрос (с использованием httparty gem) на графике facebook, чтобы проверить, действителен ли токен, который приходит из клиента, или нет, но я полагаю, что интерполяция не работает с httpartyИнтерполяция с запросом httparty в rails

response = HTTParty.get("https://graph.facebook.com/me?access_token=#{params[:access_token]}") 
render json: response 

, но это дает мне ответ

{"error":{"message":"Bad signature","type":"OAuthException","code":1}} 

я упускаю что-то?

ответ

0

Я полагаю, что интерполяция не работает с HTTParty

Интерполяция особенность синтаксиса рубин; ваша строка будет интерполирована до того, как она будет передана HTTParty.

Вы могли бы отлажено это путем проверки URL:

uri = "https://graph.facebook.com/me?access_token=#{params[:access_token]}" 
Rails.logger.info(uri) 
response = HTTParty.get(uri) 

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

response = HTTParty.get("https://graph.facebook.com/me", 
         query: { access_token: params[:access_token] }) 

Однако, я не уверен, что это будет на самом деле решить вашу проблему. Есть хороший шанс, что проблема действительно в другом месте в потоке OAuth - есть много места для ошибок при работе с OAuth.

+0

К сожалению, это не сработает, но tnx для ответа. Единственное решение, которое я нашел, - использовать Net :: Http – Madalina

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