Розвиток Facebook у localhost


177

Просто хотів дізнатись, чи є якийсь спосіб я можу розробляти додатки Facebook у localhost.

Відповіді:


246

Редагувати: 2-15-2012 Ось як використовувати автентифікацію FB для веб-сайту localhost.

Мені здається більш масштабним і зручним налаштувати другий додаток у Facebook. Якщо я будую MyApp, я зроблю другий під назвою MyApp-dev.

  • Створіть новий додаток за адресою https://developers.facebook.com/apps
  • (Нове 15.02.2012) Установіть Websiteпрапорець у розділі "Виберіть, як ваша програма інтегрується з Facebook" (У останній версії Facebook ви можете знайти це у розділі Налаштування> Основні> Додати платформу - Потім виберіть веб-сайт)
  • Встановіть поле URL-адреси веб-сайту ( НЕ поле Домени додатків ) на http: //www.localhost: 3000 (ця адреса призначена для Ruby on Rails, змініть за потребою)

введіть тут опис зображення

  • У ініціалізаторі додатків введіть код для виявлення середовища
    • Зразок рейки 3 код
      якщо Rails.env == 'розвиток' || Rails.env == 'тест'
        Rails.application.config.middleware.use OmniAuth :: Builder
          постачальник: facebook, 'DEV_APP_ID', 'DEV_APP_SECRET'
        кінець
      ще
        # Виробництво
        Rails.application.config.middleware.use OmniAuth :: Builder
          постачальник: facebook, "PRODUCTION_APP_ID", "PRODUCTION_APP_SECRET"
        кінець
      кінець
      

Я віддаю перевагу цьому методу, оскільки після його налаштування співробітники та інші машини не мають додаткових налаштувань.


3
+ 1ed Це дивно! Люди кажуть, що ви не можете додати localhost як URL-адресу програми. Але це для мене просто працює. Дякую!
Кейн Віана

15
Це все ще стосується вас? Я не можу додати localhost або 127.0.0.1.1.1000000 чи щось подібне до мого домену додатка для Facebook.
Піт

Я просто спробував створити новий і наткнувся на проблему "недійсний домен". Дякую за улов
Ерік Ху

1
@zoltarSpeaks Дивіться мою оновлену відповідь. Вам доведеться використовувати інше поле, а не "домен програми"
Ерік Ху

1
Чи це буде заміняти ініціалізатори / devise.rb's config.omniauth: facebook, 'APP_KEY', 'APP_SECRET',: range => "email, offline_access .."?
зникли

26

Звичайно, ви можете просто додати URL-адресу localhost (без "http") у свою app_domain, а потім додати свій сайт_url http://localhost(з http)

Оновлення

Facebook зараз трохи змінить речі, просто перейдіть до налаштувань програми, а в URL-адресі сайту просто додайте http: //localhostта залиште Домен додатків порожнім


Це повністю працює. З нашого боку паркану нічого не потрібно.
godspeedelbow

10
Це більше не працює, ви отримуєте помилку, не можете додати домени верхнього рівня
Джош Бедо

20

Ось моя конфігурація, і вона чудово працює для PHP API:

домен програми

   http://localhost

URL-адреса сайту

   http://localhost:8082/

1
довелося заповнити обидва ці текстові введення для роботи локального господаря
paulruescher

19

ПРИМІТКА. Станом на 2012 рік Facebook дозволяє зареєструвати "localhost" як URL-адресу повернення. Можливо, вам знадобиться подібне рішення для інших постачальників (наприклад, Microsoft).

Якщо вам потрібне справжнє доменне ім’я, зареєстроване у Facebook (наприклад, my.really.own.domain.com), ви можете локально перенаправляти запити до цього домену на свою машину. Найпростіший підхід у будь-якій ОС на будь-якій ОС - це зміна файлу "хостів" для відображення домену на 127.0.0.1 (див. Http://technet.microsoft.com/en-us/library/bb727005.aspx#EDAA та https: / /serverfault.com/questions/118290/cname-record-alias-in-windows-hosts-file ).

Зазвичай я використовую Fiddler, щоб зробити це для мене (у Windows з локальним IIS) - див. Зразки на веб-сайті http://www.fiddler2.com/Fiddler/Dev/ScriptSamples.asp .

if (oSession.HostnameIs("my.really.own.domain.com")) {
   oSession.host="localhost:80";
}

Підхід до файлів хостів не працює з сервером розвитку Visual Studio, оскільки він вимагає, щоб вхідні URL-адреси були localhost / 127.0.0.1. Якщо вам потрібно працювати з ним (або, можливо, з експресом IIS), щоб перекрити хост - Використання Fiddler з IIS7 Express


9

Facebook більше не дозволяв URL-адресу зворотного дзвінка "localhost" для додатків FBML Facebook


переконайтеся, що в налаштуваннях безпеки Facebook вимкнено функцію "Безпечний перегляд". Це зробить ваш localhost недоступним, якщо він включений.
супайб

9

З новим центром розвитку тепер простіше:

1) Залиште домени додатків порожніми.
2) Клацніть Додати платформу
3) URL-адреса сайту повинна дорівнювати повному шляху вашого місцевого хоста.
4) Збережіть зміни


1
Перевірено, що це найкращий спосіб встановити localhost. Просто вставте основну URL-адресу у ваше середовище розробки, як зазначено вище - без http: // і facebook додасть її вам. Прості речі! Дякую Джей
Кіаде

1
Це рішення вирішило мою проблему під час запуску на localhost
Rola

8

Щойно я виявив рішення: Ви можете зробити доступ до своєї локальної машини за допомогою http://localtunnel.com . Вам потрібно буде (тимчасово) змінити деякі URL-адреси, які використовуються у вашому коді програми / html, щоб посилання вказували на тимчасовий домен, але принаймні facebook може дістатися до вашої машини.


7

У основних налаштуваннях програми ( https://developers.facebook.com/apps ) у розділі Налаштування-> Основні-> Виберіть, як ваш додаток інтегрується з Facebook ...

Використовуйте "URL-адреса сайту:" та "URL-адреса мобільного сайту:", щоб утримувати URL-адреси виробництва та розробки відповідно. Обидва сайти дозволять аутентифікувати. Я просто використовую Facebook для автентифікації, тому мені не потрібна функція переадресації мобільного сайту. Зазвичай я змінюю "URL-адресу мобільного сайту:" на мій сайт "localhost: 12345", коли я тестую автентифікацію, а потім повертаю його до нормального стану, коли закінчу.


5

Є ! Моє рішення працює, коли ви створюєте додаток, але ви хочете використовувати авторизацію facebook на своєму веб-сайті. Це рішення нижче НЕ потрібне, коли ви хочете створити додаток, інтегрований до сторінки FB.

Вся справа в тому, що ви не можете розмістити "localhost" як домен на сторінці конфігурації у вашому додатку. Причини безпеки?

Вам потрібно перейти до вашого хост-файлу в OSX / Linux тощо / hosts та додати такий рядок: 127.0.0.1 dev.yourdomain.com

Домен, який ви ставите, що завгодно. Однією помилкою є додавання цього рядка: localhost dev.yourdomain.com (принаймні, на сніговому леопарді OSX не працює).

Тоді вам доведеться очистити кеш-пам'ять dns. На OSX: введіть dscacheutil -flushcache в терміналі. Нарешті, поверніться до веб-сайту веб-розробника facebook, і на сторінці конфігурації програми ви можете додати домен "dev.yourdomain.com".

Якщо ви використовуєте таку програму, як Mamp, Easyphp або будь-яку іншу, переконайтесь, що порт для Apache становить 80.

Це рішення має працювати для Windows, оскільки воно також має файл хостів. Тим не менш, наскільки я пам’ятаю, Windows 7 більше не використовує цей файл, але цей трюк повинен працювати, якщо ви знайдете спосіб змусити Windows використовувати файл хостів.


працює для win8.1 c: \ windows \ system32 \ driver \ etc \ hosts. Можливо, вам знадобиться флеш 'Кеш розв’язувача хосту' у chrome URL = chrome: // net-
Internals

5

Ви повинні вибрати продукт Facebook "facebook login" та включити клієнтський OAuth Login, "Web OAuth Login" та "Embedded Browser OAuth Login", навіть якщо ви надасте URL localhost. Він буде працювати введіть тут опис зображення


Це допомогло перенести проблему. Повідомлення від FB від 23.02.2018: У березні ми проводимо оновлення безпеки для ваших налаштувань додатка, що призведе до визнання недійсними дзвінками з URI, які не вказані в полі Дійсні URI-адреси переадресації OAuth нижче. Це оновлення надходить у відповідь на шкідливу діяльність ми бачили на нашій платформі, і ми хочемо захистити ваш додаток або веб-сайт, вимагаючи нового суворого режиму для перенаправлення URI.
Тім Тайлер

1
Fb тепер вимагає https для зворотного дзвінка. Localhost не підтримує https.
huuthang

1
@huuthang, тому цілий Q / A застарілий.
RGB


3

Я думаю, ви повинні мати можливість розробляти додатки за допомогою веб-сервера розробки візуальної студії: Запустіть нову програму FaceBook на веб-сайті : http://www.facebook.com/developers/ . Потім встановіть параметри для URL-адреси сайту та URL-адреси полотна для запущеного примірника вашого веб-сайту, наприклад: http: // localhost: 1062 /

Ось кілька посилань, які допоможуть вам почати роботу з FaceBook:

  1. http://thinkdiff.net/facebook/graph-api-iframe-base-facebook-application-development/ ,
  2. http://nagbaba.blogspot.com/2010/05/experifying-facebook-javascript-sdk.html ,
  3. http://apps.facebook.com/thinkdiffdemo/

Сподіваюся, це допомагає.


3

Спробуйте це ---

https://www.facebook.com/help/community/question/?id=589302607826562

1 - Клацніть Програми, а потім виберіть додаток.

2 - Клацніть кнопку «Налаштування» в лівій частині екрана.

3 - У Основних налаштуваннях натисніть кнопку Додати платформу під конфігурацією налаштувань.

4 - Виберіть Веб-сайт у діалоговому вікні платформи.

5 - Введіть свою URL-адресу (localhost працює тут).

6 - Введіть текст домену домену додатків, додайте домен, який відповідає домену в URL-адресі.

7 - Збережіть свої настройки.


2

Припустимо, ви зареєстрували додаток як:

app.domain.com

Вам просто потрібно змінити файл / etc / hosts, додавши його

127.0.0.1 dev01.app.domain.com

Потім змініть конфігурацію apache

ServerName dev01.app.domain.com

і перезапустити апаш.

Вам потрібно буде ввести свою URL-адресу в змінну, щоб використовувати її як параметр XML для деяких викликів:

<fb:login-button registration-url="http://<?=$URL?>/register" />

2

Не маю достатньої кількості кредитів для коментування голосової відповіді вгорі, але, принаймні, в моєму рельсовому середовищі (працює 4), рейки s є http://localhost:3000, ні http://www.localhost:3000. Коли я змінив його http://localhost:3000, він працював просто чудово. Не потрібно редагувати жоден файл хостів.


2

app domain : localhost

site URL : http://localhost:4440/

працював для мене з новим інтерфейсом.


0

Моє рішення прекрасно працює у localhost ..... Для використання URL-адрес сайту http://localhost/ та для домену додатків Використовуйте localhost/folder_name відпочинок все те ж саме ....... він працює добре (хоча його показує redflag у App Domain..App працює нормально)


0

Перейдіть на панель інструментів програми на вкладці входу у facebook, натисніть на налаштування, а потім виберіть Закріпити HTTP. Ні, збережіть налаштуваннявведіть тут опис зображення


0

Додаток буде запускатись чудово у localhost: 3000, вам просто потрібно вказати https-адресу, за якою програма буде жити, коли вона буде у виробничому режимі.
Варіант 2 - надати URL-адресу або веб-сайт heroku, який дозволяє мати зразкове застосування у виробничому режимі.

введіть тут опис зображення


0

Останнє оновлення: вам не потрібно давати URL-адреси, якщо ви тестуєте їх у процесі розробки. Ви можете залишити поля порожніми. Переконайтеся, що ваша програма перебуває в режимі розробки. Якщо не вимкнути статус у прямому ефірі.

Не потрібно надавати URL-адресу веб-сайту, домени додатків чи дійсні ури переадресації.

введіть тут опис зображення


1
Зауважте, що якщо ви перейдете на додаток з "живого" на "розвиток", ви зможете увійти від localhost на розроблювальній машині, але ВСІ Ваші живі користувачі більше не зможуть увійти в систему.
webdevbyjoss

Я зробив це, і це все ще дало мені помилку, і кнопка fb не з’явиться
joslinm

Після створення програми натисніть кнопку "Створити тестовий додаток", щоб отримати додаток лише для розробки / тестування. Мені все-таки потрібно було додати "localhost" до доменів додатків.
Жоден

@ J.Money Я думаю, це може бути змінено до цього часу. Дякую що дали мені знати.
Vigneshwaran Sivalingam
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.