2014-02-04 2 views
3

Я разрабатываю приложение, используя Phonegap, и он реализует логин Facebook, чтобы сохранить некоторые данные, используя user_id в качестве ссылки. Я использую библиотеку OAuth.io для реализации диалогового окна входа в систему, и все выполняется гладко в веб-браузере и на Android, но когда я тестирую приложение в XCode, и я нажимаю кнопку входа в систему, появляется следующая ошибка.OAuth Facebook Войти в Phonegap возвращает InvalidHeader error

Не удается найти имя хоста в файле: /// от статического
код: InvalidHeader
сообщение: Не удается найти имя хоста в файле: /// от статического

Я думаю, что это имеет что-то делать с телефонной связью, не делая внешний запрос, поскольку приложение фактически не размещено в домене, а работает локально ... какие-то мысли?

+0

Любые идеи? Это происходит то же самое со мной. –

+2

проверить это один https://github.com/ oauth-io/oauth-phonegap/issues/11 – Aravin

+0

Эй, @Aravinth, я подумал об этом, но я уверен, что использую правильную версию, версию PhoneGap плагина JS, а не веб-версию. Я отправил разработчикам плагинов несколько сообщений электронной почты, но без ответа:/... –

ответ

0

У меня возникла проблема с использованием oauth.io. Оказывается, мой предварительный фильтр Ajax менял REQUEST на Facebook (он добавлял параметры в заголовок для каждого запроса). Wether это ваша проблема или нет, вам нужно сравнить успешный REQUEST с Facebook с небезызвестным, который покажет вам, где все пошло не так. Альтернативно, пустое приложение с телефонными записями без дополнительного кода, а затем требуемый код oauth должен работать и станет хорошей отправной точкой для изоляции вашей проблемы.

0

Я пользуюсь Phonegap за 2 года до этого. Хотя раньше я не подключался к facebook, я подключился к другому сайту OAuth.I могу показать вам мое решение.

Во-первых, вы должны знать, как работает OAuth. Вы можете прочитать OAuth 2.0 с веб-сайта разработчика или других веб-сайтов.

Во-вторых, вы должны знать свою цель: токен, uid, expires_time. Самое главное - токен.

В-третьих, просто сделайте это. В 2010 году я решу эту проблему, используя плагин Phonegap Childbrowser (теперь Phonegap имеет inAppBrowser) и легкий сервер.

Почему я должен использовать легкий сервер? Сервер может помочь мне обработать перенаправление в службе OAuth и сделать кеш.

Шаг 1: Я написал сценарий для подключения к моему серверу, и мой сервер подключился к OAuth Service (facebook).

Шаг 2: Служба OAuth (Facebook) выполняет ответ и перенаправляется на страницу входа в Facebook.

Шаг 3: После ввода имени пользователя и пароля OAuth Service (Facebook) перенаправляет на другой URL-адрес и выполняет обратный вызов с помощью какого-либо кода или токена.

Шаг 4: Если вы получаете токен, сохраните его и используйте для подключения OAuth Service (Facebook), если хотите.

Когда я увидел «Не могу найти имя хоста в файле: /// из статического» в вашем описании, я знаю, что, может быть, вы запутаетесь в OAuth.Now, я предлагаю вам некоторый код на стороне сервера, чтобы обработать его и сделать ваш OAuth процесс возможен.

1

Похоже, вы используете oauth.js библиотеку вместо телефонной версии На главной странице "index.HTML»добавить ссылку на правильный JS файл

<script src="oauth-phonegap.js"></script> 

Далее следуйте инструкциям here для сборки приложений

Смежные вопросы