Facebook неверный URI перенаправления для www.domain.com, а не domain.com - PullRequest
0 голосов
/ 27 июля 2011

У меня есть приложение rails, которое есть на heroku, и оно у меня в доменном имени .com. У меня есть URL-адрес холста моего приложения на Facebook для domain.com, и когда я нажимаю кнопку входа в систему через Facebook, он работает, но когда я попадаю на www.domain.com, он дает мне:

{
   "error": {
      "type": "OAuthException",
      "message": "Invalid redirect_uri: Given URL is not allowed by the Application configuration."
   }
}

Как бы я исправил это в героку?

Ответы [ 5 ]

1 голос
/ 29 марта 2012

Codeglot не совсем подходит для меня, но, используя его элементы, это сработало.

В вашем application_controller положите:

before_filter :check_url

#redirecting the herokuapp and www version of domain
def check_url
  url = request.url
  if url.include?('appname.herokuapp.com')
    redirect_to ('http://domain.com')
  elsif url.include?('www.domain.com')
    redirect_to ('http://domain.com')        
  end    
end

Если вы используете бамбук вместо кедра, то замените "herokuapp" просто "heroku"

0 голосов
/ 07 февраля 2013

Если вы хотите перенаправить, сохраняя текущий путь, вы можете написать, как показано ниже, в application_controller.rb.

class ApplicationController < ActionController::Base
  before_filter :check_uri

  def check_uri
    if request.host == "xxx.herokuapp.com" then
      redirect_to request.protocol + "www.xxx.com" + request.fullpath
    end
  end
0 голосов
/ 03 августа 2012

Это единственное решение, которое я смог найти для heroku, которое не приводило к бесконечным перенаправлениям или другим проблемам.Надеюсь, что это поможет.

Принудительный 'www' в Rails3, размещенном на Heroku без .htaccess

0 голосов
/ 27 июля 2011

Я бы просто установил запись перенаправления URL на хосте вашего домена (GoDaddy, NameCheap и т. Д., Через кого вы купили доменное имя), чтобы перенаправить все www.yourapp.com на yourapp.com, так что все это происходит на DNS-сервере до того, как он попадет на сервер приложений.

Вот аналогичный вопрос, на который я недавно ответил, имея дело с этим (этот ответ предназначен для противоположного случая, когда они хотели, чтобы все yourapp.com запросы перенаправили на www.yourapp.com, но это точно такая же идея): Перенаправление субдомена для статического активы на Heroku

Кстати, этот метод автоматически перенаправит их на любой путь, добавленный в конец. Поэтому нажатие www.yourapp.com/something перенаправит их на yourapp.com/something

0 голосов
/ 27 июля 2011

Вам необходимо добавить www.domain.com и domain.com к API Facebook или иметь перенаправление в вашем контроллере, которое перенаправляет, если вы находитесь на www.domain.com

 before_filter :ensure_domain
 before_filter :get_filter

   def ensure_domain 
    url = request.url
    if url.include?('domain.heroku.com')
        redirect_to url.gsup('domain.heroku.com', 'domain.com')
    eslif url.include?('www.domain.com')
        redirect_to url.gsup('www.domain.com', 'domain.com')        
    end    
   end

Убедитесь, что URL-адрес подставляется правильно, но это должно быть сделано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...