Приложение Facebook: localhost больше не работает как домен приложения
Я писал игру для Facebook с помощью Rails и jQuery. Поскольку я начал использовать Facebook Javascript SDK, использование localhost в качестве домена приложения, казалось, работало просто отлично. Я смог протестировать свою игру как локально, так и на Heroku.
в последний день, кажется, что Facebook сделал большое обновление для своего пользовательского интерфейса разработчика. Теперь, если я добавлю localhost в качестве домена приложения, это даст мне следующую ошибку:
Это должно быть получено из URL Canvas, Secure Canvas URL-адрес, URL сайта, URL-адрес мобильного сайта, вкладка URL-адрес страницы или обеспечить закладке URL-адреса. Проверьте и исправьте следующие Домены: localhost
моя игра также теперь не работает локально, и я получаю сообщение об ошибке, когда JavaScript SDK входит в систему пользователя:
код ошибки API: 191 описание ошибки API: указанный URL-адрес не указан принадлежит сообщению об ошибке приложения: недопустимый redirect_uri: Given URL-адрес не разрешен конфигурацией приложения.
этот не происходит, когда я развертываю свою игру, так как herokuapp.com считается допустимым доменом приложения.
Как я должен разрабатывать и тестировать свою игру, если я не могу использовать localhost или 127.0.0.1?
13 ответов:
протокол, кажется, постоянно меняются, и принятый ответ не работает для меня сегодня. В случае, если это помогает другим поисковикам, это то, что сработало для меня:
- все изменения были внесены на странице настроек под вкладкой Basic
1.) В центре под первым полем опций нажмите " + Добавить платформу "и выберите" веб-сайт " (или все, что подходит для вашего приложения.)
2.) В поле, которое появляется для веб-сайта, который вы только что добавили: URL сайта:
http://localhost:3000/
3.) В поле выше этого (Настройки = > Основные):Приложение Домена:
localhost
4.) Внизу правой кнопкой мыши нажмите "Сохранить изменения"
5.) Убедитесь, что идентификатор приложения скопирован и правильно вставлен в ваш код. (Код в первом поле на этой странице, Если вам снова понадобится.)
- перейдите на страницу настроек вашего приложения в http://developers.facebook.com
- нажмите на стрелку в верхнем левом углу (рядом с названием вашего приложения) и нажмите кнопку "Создать тест" и дать ему имя
- в настройках > Basic этого нового тестового приложения установите Домены приложений как "localhost"
- также установите URL сайта сайта как"http://localhost:8888" (или любой другой порт, который вы используете).
- важно: это приложение имеет другой идентификатор приложения и секрет приложения из вашего онлайн-приложения. Итак, последний шаг: убедитесь, что вы обновили код, который находится на вашем локальном хосте с идентификатором приложения и секретом приложения тестового приложения. Напротив, код, который находится на реальном сервере, должен использовать идентификатор и секрет основного приложения.
вы все еще можете протестировать свое приложение, не развертывая его на удаленном сервере, таком как heroku. Фокус в том, чтобы обновить таким образом:
127.0.0.1 mydomain.com
затем в настройках приложения Facebook введите [http://] mydomain.com без "[" и "]"
это сработало для меня таким образом
для всех, кто ерзал с этим в 2017 году. Интерфейс снова изменился. Я хотел бы прокомментировать этот ответ, но у меня недостаточно репутации. Url-адрес localhost вашего приложения теперь должен быть скопирован в три места. В настоящее время (26 октября 2017 года) последовательность такова:
1.) Нажмите кнопку "Настройки" в меню слева.
2.) В центре под первым окном опций нажмите "+ Добавить платформу "и выберите" сайт " (или все, что подходит для вашего приложение.)
3.) В поле, которое появляется для веб-сайта, который вы только что добавили, скопируйте свой url-адрес сайта localhost (f.e. http://localhost:3000/)
4.) В поле выше этого "домен приложения" скопируйте тот же URL
5.) Внизу правой кнопкой мыши нажмите "Сохранить изменения"
6.) В левом меню в разделе "Продукты" нажмите "Facebook Login" (или добавьте его через "+ добавить продукты", если он недоступен)
7.) Теперь вы находитесь в настройках входа в Facebook. Скопируйте тот же url-адрес в поле "допустимые URI перенаправления OAuth"
Это должно работать.
просто добавьте localhost в качестве url-адреса холста или url-адреса мобильного сайта, это позволит вам иметь как localhost, так и herokuapp.com в настройках домена приложения. Затем, когда ваше приложение находится в производстве, просто удалите его.
Это неправильный путь. Вы должны создать тестовое приложение с помощью вкладки тест в настройках приложения. А затем вы можете ввести url-адрес этапа разработки (например, localhost) в свое приложение.
решение с использованием Firebase
для того, чтобы получить эту работу на
localhost
, порт3000
Я сделал следующее:
- Создать Приложение
- Теперь выберите "+ Создать тестовое приложение " из выпадающего списка со стрелкой (вверху слева).
- добавить
localhost
для приложения Домены
- добавить
http://localhost:3000/
к URL сайта выбранным "+ добавить платформу"до этого момента я следил за всеми предыдущими ответами, представленными здесь, но ничего не сработало.
так...
в меню слева выберите "Добавить продукт"
Добавить "Facebook Войти"
вам будет представлен рабочий процесс карусели, с доменом по умолчанию
http://localhost:3000/
, нажмите кнопку "Продолжить" до конца.
выберите "Facebook Login > настройки" в меню продукта.
введите опорному пункту протокола OAuth URI перенаправления (нашли, когда разрешить вход в систему с Facebook в консоли опорного пункта https://console.firebase.google.com, например ниже)
- вставить URI и сохранить.
сделано.
попробуйте использовать url с портом, например
http://localhost:8000/
У меня была такая же проблема, и я нашел это решение прямо сейчас.
Это работает для меня в heroku, localhost вещь не работает (для меня). Я надеюсь, что это поможет
1.) В центре под первым полем опций нажмите " + Добавить платформу "и выберите" веб-сайт " (или все, что подходит для вашего приложения.)
2.) В поле, которое появляется для веб-сайта, который вы только что добавили: URL сайта:http://MYAPP.herokuapp.com/ (Замените MYAPP на имя вашего приложения)
3.) В поле выше этого (Настройки = > Основные): приложение Домен: MYAPP.herokuapp.com (замените MYAPP на имя вашего приложения)
4.) Внизу правой кнопкой мыши нажмите "Сохранить изменения"
просто Примечание Для некоторых других, которые могут бороться с этим, как я был. Я не смог заставить это работать с" тестовыми " приложениями. Используя мои фактические Настройки Приложения (и просто добавив
"http://localhost:3000/"
к моему URL холста) работал, как все остальные предложили. Кажется, тестовые приложения не равны реальным приложениям.
для меня это работало так:
настройка панели мониторинга приложения facebook:
*на вкладке "Основные":
1) оставляя домен приложения пустым.
2) стирание любой платформы. Значение: нет веб-сайта нет платформы холста. (так что нет сайта-URL поле для заполнения)
*на вкладке "Дополнительно":
3) я ввел в действительный OAuth redirect URI:
http://localhost/myappfolder/redirect.php
4) относительно моего кода, insdie мой c:/xampp/htdocs/localhost/myappfolder/index.php (этот файл делает loginURL):
$helper = new FacebookRedirectLoginHelper('http://localhost/myappfolder/redirect.php');
внутри редиректа.файл php:
$helper = new FacebookRedirectLoginHelper('http://localhost/myappfolder/redirect.php');
и я получил сеанс! наконец-то! не надо вешаться в конце концов: P
Я столкнулся с проблемой с моим приложением Rails, которое я обычно запускаю с http://localhost:3000 потому что Facebook теперь требует действительного перенаправления OAuth для использования https.
чтобы использовать https локально, я использовал [ngrok] [1], который позволяет использовать https, предоставляя туннель. Для этого:
- Я зашла на их сайт и скачал их программу
- я извлек файл для программы
- в моей консоли, я зашел в каталог, где ngrok был извлечен и введен "grok http 3000" на моей машине Windows, другие могут использовать"./grok http 3000'
- после ввода этого, ngrok предоставил адрес https, который я поместил в поле URIs действительного перенаправления OAuth в Facebook
- затем я запустил свой сервер и смог получить к нему доступ, используя этот адрес https вместо localhost: 3000