Работы приложения Facebook на localhost
Я планирую подключиться к Facebook чат с моего localhost. Мне нужно будет получить ключ сеанса от Facebook. Когда я даю URL-адрес сайта в localhost:8080 или ip-address:8080 он не работает.
Я читал о настройке двух приложений с двумя разными ключами API, один из которых работает на dev m/c, а другой на localhost, но я не совсем понял.
может ли кто-нибудь объяснить, как запустить приложение Facebook на localhost?
12 ответов:
Я написал учебник об этом некоторое время назад.
наиболее важным моментом является "URL сайта":
URL сайта:http://localhost/app_name/
где структура папок что-то вроде:
app_name ¦ index.php ¦ +---canvas ¦ ¦ index.php ¦ ¦ ¦ +---css ¦ main.css ¦ reset.css ¦ +---src facebook.php fb_ca_chain_bundle.crtEDIT:
Kavya:как сервер FB распознает мой локальный хост даже без IP или портвейн??Я не думаю, что это имеет какое-либо отношение к Facebook, я Угадай С iframe
srcпараметр загружается с клиентской стороны, он будет обрабатывать ваш локальный URL, как если бы вы поместили его непосредственно в свой браузер.например, есть файл на вашем онлайн-сервере с контентом (например,
online.php):<iframe src="http://localhost/test.php" width="100%" height="100%"> <p>Not supported!</p> </iframe>и в вашем корневом каталоге localhost есть файл
test.php:<?php echo "Hello from Localhost!"; ?>сейчас
http://your_domain.com/online.phpвы вы увидите содержимое вашего файла localhost!вот почему подписки в реальном времени и деавторизировать обратные вызовы (просто упомянуть) не работа с URL-адресами localhost! потому что Facebook будет пинговать (отправлять http-запросы) на эти URL-адреса, но, очевидно, сервер Facebook не будет переводить эти URL-адреса на ваш!
Если вы используете localhost:
в Facebook-->Настройки-->Основные, в поле "Домены приложений" напишите " localhost", затем нажмите кнопку "+ Добавить платформу "выберите" веб-сайт",
он создаст два поля "мобильный URL сайта" и " URL сайта", в поле " URL сайта "снова напишите"localhost".
работает для меня.
вы также можете редактировать файл hosts и создавать локальные варианты вашего домена.
пример
Если ваш реальный адрес приложения facebook "example.com" вы можете создать "localhost.example.com "(доступно только с вашего ПК) домен в вашем файле" hosts", указывающий на" localhost " и запустите свой локальный сайт под этим доменом. Вы можете обмануть Facebook таким образом.
в основных настройках Вашего приложения (https://developers.facebook.com/apps) в разделе Настройки- > Основные - > выберите способ интеграции вашего приложения с Facebook...
использовать "URL сайта:" и "мобильные URL-адреса сайта:" о проведении производственной и URL развития. Оба сайта будут разрешены для аутентификации. Я просто использую Facebook для аутентификации, поэтому мне не нужны никакие функции перенаправления мобильных сайтов. Я обычно меняю "url мобильного сайта:" на мой сайт "localhost:12345", пока я проверка подлинности, а затем установить его обратно в нормальное состояние, когда я закончу.
август 2013 года. Facebook не позволяет установить домен с портом для приложения, например "localhost:3000".
Так что вы можете использовать https://pagekite.net туннелировать ваш
localhost:portдля соответствующего домена.Rails разработчики могут использовать http://progrium.com/localtunnel/ бесплатно.
- Facebook позволяет только один домен для приложения в то время. Если вы пытаетесь добавить еще один, как localhost, он покажет какую-то другую ошибку о домене. Обязательно используйте только один домен для обратного вызова и для настройки домена приложения в то время.
мне сегодня на работу. Мой URL-адрес
http://localhost:8888. Домен, который я дал facebook, - это localhost. Я думал, что это не работает, потому что я пытался вытащить данные с помощьюFB.apiметод. Я продолжал получать "неопределенное" имя и изображение без источника, поэтому определенно не имел доступа к графику.позже я понял, что моя проблема заключалась в том, что я только передал первый аргумент
/meдоFB.apiи у меня не было маркера. Так что вам нужно будет использоватьFB.getLoginStatusфункция для получения токена, который должен быть добавлен в
просто укажите url-адрес холста как http://localhost/app_path.
хорошо, я не уверен, что с этими ответами, но я дам вам знать, что сработало для меня, как посоветовал старший разработчик на моей работе. Я работаю в Ruby on Rails и использую JavaScript-код Facebook для получения токенов доступа.
проблема: чтобы сделать аутентификацию, Facebook берет url из адресной строки и сравнивает его с тем, что у них есть в файле. Они не позволяют вам использовать
localhost:3000по какой причине. Тем не менее, вы можете использовать полностью составленное доменное имя, напримерyoursite.devзапустив локальный сервер и указавyoursite.devдо127.0.0.1:3000или там, куда указывал ваш localhost.Шаг 1: установить или обновить Nginx
$ brew install nginx(установить) или$ brew upgrade nginx(обновить)Шаг 2: откройте файл конфигурации nginx
/usr/local/etc/nginx/nginx.conf(здесь)
/opt/boxen/config/nginx/nginx.conf(если вы используете Boxen)Шаг 3 добавьте этот бит кода в ваш
http {}блокзаменить
proxy_passС, где вы хотите указатьyoursite.devдля. В моем случае это была замена localhost: 3000 или эквивалент127.0.0.1:3000server { listen yoursite.dev:80; server_name yoursite.dev; location / { proxy_pass http://127.0.0.1:3000; } }Шаг 4: редактировать файл hosts, в
/etc/hostsна Mac включить127.0.0.1 yoursite.devэтот файл направляет домены на localhost. Nginx слушает на localhost и перенаправляет, если он соответствует правилу.
Шаг 5: каждый раз, когда вы используете среды разработки будем вперед, вы используете
yoursite.devв адресной строке вместоlocalhost:3000Так Facebook регистрирует вас правильно.
Forward-отличный инструмент для помощи в разработке приложений facebook локально, он поддерживает SSL, поэтому cert-это не проблема.
https://forwardhq.com/in-use/facebook
отказ от ответственности: я один из разработчиков
вам нужно настроить приложение для запуска через https для localhost
вы можете выполнить шаги, приведенные в этом, чтобы настроить HTTPS на ubuntu
вам нужно сделать следующие шаги:
установить Apache (если у вас нет)
sudo apt-get install apache2Шаг первый-активация SSL Модуль
sudo a2enmod ssl sudo service apache2 restartШаг второй-создать новый каталог
sudo mkdir /etc/apache2/sslШаг третий-создайте Самозаверяющий сертификат SSL
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache/ssl/apache.key -out /etc/apache2/ssl/apache.crtС помощью этой команды мы создадим самозаверяющий сертификат SSL и ключ сервера, который его защищает, и поместим их в новый каталог. Самая важная строка- "общее имя". Введите свое официальное доменное имя здесь или, если у вас его еще нет, ваш сайт IP-адрес.
общее имя (например, полное доменное имя сервера или ваше имя) []:example.com или localhost
Шаг четвертый-настройка сертификата
sudo vim /etc/apache2/sites-available/default-sslнайдите следующие строки и отредактируйте их с вашими настройками
Имя_сервера localhost или example.com
SSLEngine на SSLCertificateFile/etc/apache2/ssl / apache.ЭЛТ
SSLCertificateKeyFile /etc/apache2/ssl / apache.ключ
Шаг пятый-активируйте новый виртуальный хост
sudo a2ensite default-ssl sudo service apache2 reload
трюк:
использовать MAMPPRO и создать: имя сервера: точный адрес вашего сайта (например: helloworld.com) на ваш сайт на вашем диске
На Facebook: Таким образом, вы также можете сохранить свой исходный URL-адрес сайта (например: helloworld.com)
теперь вы понимаете, что при вводе вашего сайта на адресной строке вы находитесь в local! ..и когда вы хотите быть в сети, просто неактивен сервер на MAMP ПРОФЕССИОНАЛ..
:)
ни один из ответов выше не работал для меня. Я работаю на FB API 2.5. Мой был комбинацией вопросов, которые приводят к успеху после решения
- создайте тестовое приложение, чтобы убедиться, что оно поддерживается и управляется как такие и могут быть отключены при переходе жить
- прочитайте сообщение об ошибке правильно :) - я должен был включить "Web OAuth Login" с "Client OAuth Login"
- использовать https://www.whatismyip.com/ чтобы узнать, что мой текущий IP это
- создать запись A на моем домене т. е. http://localhost.mydomain.com это указывает на мой текущий IP
Это, вероятно, не идеально, как изменение динамического IP, и, вероятно, можно было бы использовать DynDNS или что-то подобное, чтобы сделать IP более "статичным", но это сработало для меня
Comments