2009-12-10 3 views
12

Я пытаюсь написать некоторые функции javascript для интеграции с потоком Facebook. Однако они работают только в том случае, если вы разрабатываете их непосредственно на реальном сервере, чтобы Facebook мог получить доступ к файлу xd_receiver.htm, который они просят меня разместить по адресу www.mydomain.com/xd_receiver.htm. Однако вы все, вероятно, можете согласиться с тем, что на живых серверах действительно важно не разрабатывать.Разработка Facebook Connect Javascript API на localhost

Вот что я пытался до сих пор:

  1. Размещение xd_receiver.htm на реальном сервере и работает мои скрипты на моем Dev сервере в надежде, что ключ API расскажет сервер Facebook, чтобы искать xd_receiver.htm на моей жизни server ... no luck
  2. Подписывается на два ключа API с Facebook: ключ разработчика, указывающий на 127.0.0.1, и живой, указывающий на мой живой сайт. Теория здесь заключалась в том, что если xd_receiver.htm был необходим только локально, то он мог бы найти его через 127.0.0.1 ... не повезло

Кто-нибудь понял способ сделать это? Они не могут рассчитывать на то, что мы разработаем наши приложения для Facebook исключительно вживую без песочницы Dev.

Некоторая справочная информация о том, что она стоит: с помощью ASP.NET с VB, но надеясь использовать исключительно Javascript.

+0

Я пытаюсь сделать почти то же самое, просто используя ASP MVC. Надеюсь, это получилось хорошо для вас! До сих пор это было довольно сумасшедшим: P – MedicineMan

ответ

10

Определенно можно использовать локальные файлы xd_receiver.htm. Я разработчик приложений для Facebook по профессии, и у меня есть десятки из них.

Вы ближе всего к правильному ответу с № 2 выше. Способ сделать это - создать две версии вашего приложения. Если бы я делал «MyApp», у меня могло бы быть два URL-адреса Canvas страницы «myapp» и «myapp-dev» и соответствующие URL-адреса обратного вызова Canvas «www.myapp.com» и «192.168.1.1». Каждый из них представляет собой отдельное приложение Facebook со своим собственным ключом API и т. Д.

apps.facebook.com/myapp отправился на мой живой сервер, а apps.facebook.com/myapp-dev пойдет на мою локальную разработку машина. Вы должны убедиться, что Facebook, конечно, может добраться до вашей машины разработки.

Однако, все должно быть в порядке. Вам даже не нужны разные версии файла xd_receiver.htm, так как содержимое файла всегда одинаково для каждого приложения. Если ваша строка FB.XdComm.Server.init("/xd_receiver.htm"); указывает на нужный файл, она должна работать.

Я управляю ключами и путями API и т. Д. В файле конфигурации и имею один файл конфигурации для каждого приложения, будь то разработчик или производственное приложение. Это упрощает вывод правильных ключей и путей на страницах приложения.

Вы можете сохранить приложение для разработки в режиме песочницы и выполнить всю работу на своей локальной машине.

0

Самый простой способ - настроить локальный DNS таким образом, чтобы для вашего обратного вызова был возвращен адрес localhost. В Windows вы можете легко достичь этого с помощью следующей записи в \ windows \ system32 \ drivers \ etc \ hosts "127.0.0.1 your_production_xd_receiver_callback_url". Конечно, вам нужно запустить свой сервер на порту 80. В Windows это простая задача, так как в системе UNIX нет контентов безопасности :) Вам нужно настроить его, так как это порт ниже 1024. Это решение протестировано и работает для меня.