Як перевірити локальне підключення Facebook


194

Я використовую API ASP .NET і Facebook Connect. але коли я запускаю додаток і натискаю кнопку «Підключити», він повертається на Веб-сайт, а не на тестовий локальний сервер, який є ( http: // localhost: xxxx / test.aspx ) Отже, як я можу перевірити Facebook локально (тобто як я можу змінити URL-адреса зворотного дзвінка)?


4
Відповідь тут: forum.developers.facebook.com/viewtopic.php?pid=116136 ви повинні змінити "C: \ WINDOWS \ system32 \ Drivers \ Etc \ господарів файл , щоб зробити ваш домен прийти до вас LOCALHOST
Haytham

101
Ця система, як видається, досить погано реалізована з боку Facebook. Здається, їм не прийшло в голову, що хтось захоче протестувати функцію, відмінну від живого сервера. Два рішення, наведені тут - редагування файлу локальних хостів, щоб підробити виробничий сервер і перенаправити його на localhost, а також тимчасово змінити URL-адресу активного виробництва у Facebook на localhost - і те, і інше, як з Facebook. Facebook повинен додати якусь потужність тестування до своєї системи.
Пол Легато

2
Добре працювати - мати 3 додатки -> Live, QA та Dev. Отже, якщо вашим основним додатком є ​​apps.facebook.com/ohnice/ QA і dev, це apps.facebook.com/ohnice_qa_sd/ є apps.facebook.com/ohnice_dev_fg/ так щось випадкове, щоб у вас не було небажаних відвідувачів, коли ваш будинок не охайний.
tgkprog

1
@PaulLegato це робиться зараз (через роки ...). Дивіться моє рішення або одне з рішень за допомогою функції тесту.
Ердаль Г.

Відповіді:


236

Це досить просто, коли ви дізнаєтесь.

Відкрити /etc/hosts(unix) або C:\WINDOWS\system32\drivers\etc\hosts.

Якщо ваш домен foo.com, додайте цей рядок:

127.0.0.1    local.foo.com

Під час тестування відкрийте local.foo.comу своєму браузері, і він повинен працювати.


4
Щоб відредагувати файл хостів на MAC, запустіть у своєму терміналі "sudo pico / private / etc / hosts", відредагуйте та натисніть "ctrl X", щоб зберегти
Christoffer

@Christoffer: Я вважаю, що / private / тощо є лише символічним посиланням на / etc, тому / etc / hosts та / private / etc / hosts - це той самий файл.
freeall

1
Ви маєте рацію ... але дехто з нас потребує подачі ложкою і говорити "відкрити / тощо / господарі" просто недостатньо;) FB все ще не вдається локально з цим рішенням для мене. Я не використовую facebook JS
Christoffer

5
це працювало для мене до недавнього часу, але зараз я отримую connection refusedвиняток, коли намагаюся ввійти, можливо, через зміни у facebook. будь-які ідеї обходу дуже цінуються.
onurmatik

1
Якщо ви робите це для доступу до локальної програми Rails, можливо, вам доведеться відвідати local.foo.com: 3000` у своєму браузері, оскільки програми Rails зазвичай запускаються на цьому порту.
Девід Туйте

102

Відредагуйте додаток на веб-сайті www.facebook.com/developers/ і встановіть для "URL-адреси веб-сайту" значення "http: // localhost / myapppath".

Коли закінчите - змініть його назад.


19
Facebook не "підключається" назад до вашого сервера. Їх JS робить. І JS працює в контексті вашого браузера. Хто знає, куди вказує "localhost".
Олексій

Це не дозволило мені додати " локальний сайт ", я повинен був переконатися, що в мене є крапка. Це спрацювало: " local.site "
Піт

Деякі функції FB не працюють з цим. Наприклад - збережіть досягнення на серверах FB. Він хоче HTTPS, тому мій трюк з локальним хостом не працює :(
Костадін

2
Варто зазначити, що для перевірки на формі додатку потрібно використовувати localhost в URL-адресі, наприклад http://localhost/myapp, ніжhttp://myapp
graham

1
якщо ви використовуєте інший порт, використовуйте цей шаблон: localhost: xxxx ), наприклад: localhost: 8080
m0z4rt

77

Я пропоную створити тестовий додаток (лише для середовищ розробників) на https://developers.facebook.com/apps і встановити: Website with Facebook Loginвластивість у ваші налаштування localhost: [port] .
ця опція буде добре працювати без необхідності міняти хости.
не забудьте повернути додаток назад на виробничий додаток, як тільки ви перейдете наживо.

Редагувати - в останній версії fb ви знайдете її на settingsвкладці. введіть тут опис зображення


2
Або просто використовувати окремі файли конфігурації для, розробника, інсценування та трансляції.
Кріс Баррі

1
Більше не можна знайти "Веб-сайт із Facebook".
Yehe

5
Здається, вам потрібно натиснути на велику сіру горизонтальну кнопку "+ Додати платформу". Там у вас є "Веб-сайт"
Luciano

75

Facebook додав функцію тестових версій.

Спочатку додайте тестову версію програми: Створіть тестовий додаток

Створіть тестовий додаток

Потім змініть URL-адресу сайту на " http: // localhost " у веб-сайті та натисніть Зберегти зміни

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

Це все, але будьте уважні: ідентифікатор додатків та секретний ключ додатка різні для програми та її тестових версій!


що таке Домен додатка на панелі налаштувань. я розробляю іонний додаток з логіном у Facebook
Chirag thaker

1
@Chiragthaker Це домен, де буде розміщено додаток для виробництва
Erdal G.

3
У моєму випадку це набагато краща відповідь, ніж редагування hostsфайлу, оскільки він не вимагає використання HTTPS на моєму тестовому сервері.
Петро

39

Вам не потрібно робити нічого складного!

Facebook → Налаштування → Основні:
напишіть " localhost " у полі " Домени додатків ", потім натисніть " + Додати платформу " та виберіть " Веб-сайт " .

Після цього, в " Site Url " поле написати LOCALHOST URL
(наприклад: http://localhost:1337/something).

Це дозволить вам протестувати свої плагіни на Facebook локально.


1
Чи є вирішення для файлів у файлі шляху: /// android_assets / www? facebook не дозволить цей шлях для URL-адреси веб-сайту
Vignesh Subramanian,

повинно бути https зараз
Simon_Weaver

@Simon_Weaver, звідки ви взяли цю інформацію? це десь задокументовано?
колістівра


@Simon_Weaver із посилання, яке ви надіслали: "Ви все одно зможете використовувати HTTP з адресами" localhost ", але лише тоді, коли ваш додаток ще знаходиться в режимі розробки."
колиштра

5

Facebook, здавалося б, випадково відключає можливість встановити localhost як домен у вашому додатку facebook. Я знайшов найпростішу роботу навколо того, щоб тунель свого локального господаря до Інтернету. Це можна зробити безкоштовно за допомогою http://progrium.com/localtunnel/ або за допомогою спеціального URL-адреса (простіше, оскільки вам не доведеться щоразу змінювати URL-адресу у facebook) https://showoff.io


3
Ще один вибір тунелю - ngrok.com
Мохамед Селім

3

Я не міг використати інші рішення ... Що для мене спрацювало - встановити LocalTunnel.net (https://github.com/danielrmz/localtunnel-net-client), а потім використати отриманий URL на Facebook.


1

Схоже, FB щойно змінив сторінку розробки додатків і додав функцію під назвою "Білий список серверів IP".

  1. Перейдіть до свого додатка та виберіть Налаштування -> Вкладка "Додатково"
  2. Отримайте ваш загальнодоступний IP-адрес (Google скаже вам, якщо ви перебуваєте в Google "Whats My IP")
  3. Додайте свій загальнодоступний IP до списку IP серверів і натисніть Зберегти зміни внизу

що робити, якщо на сайті працюють кілька розробників з різних місць? Ми використовуємо VM (Vagrant), тому IP-адреса однакова для кожного розробника. На жаль, facebook не дозволяє використовувати локальні IP-адреси у Білому списку. Це не працює.
ПроблемиOfSumit

Якщо я читаю ваш коментар прямо, це не повинно бути проблемою. Вам потрібно ввести у свій загальнодоступний IP-адресу, який, як ви кажете, однаковий для кожного розробника (ви мали на увазі, що НЕ однаковий). Якщо у вас є кілька розробників на різних сайтах з різними IP-адресами, ви можете використовувати VPN для маршрутизації всього трафіку через 1 IP.
sevensevens

ні, загальнодоступний IP для різних машин у різних місцях звичайно не однаковий, просто локальний IP на кожній машині однаковий. (наприклад, localhost). Я не хочу нічого прокладати. Наразі я використовую localhost (лише приклад) у додатку FB - це прекрасно працює. Але мені потрібно рішення, як тільки сторінка перейде в реальність. Facebook дозволяє створити "Test-Apps" всередині додатка, це може бути рішенням, але я ще цього не пробував. EDIT: здається, що це рішення
ProblemsOfSumit

1

перейдіть на сторінку полотна .. перегляньте її в браузері .. скопіюйте текст адресного рядка. тепер перейдіть у свій додаток facebook, перейдіть до редагування налаштувань

на веб-сайті, в URL-адресу сайту вставити цю адресу

у інтеграції у Facebook, знову вставте цю адресу в URL-адресу полотна

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

сподіваюся, що це допоможе ..


-6

Створіть 2 програми та

В /initializer/env_variables.rb

if Rails.env == 'development'
    ENV['FB_APP_ID'] = "HERE"
    ENV["FB_SECRET"] = "HERE"
else
    ENV['FB_APP_ID'] = "HERE"
    ENV["FB_SECRET"] = "HERE"
end
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.