Fb API Facebook: регистрация возвращает "неверный 'client_id'", когда не подключен к Facebook - PullRequest
5 голосов
/ 31 января 2011

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

Я использую тег <fb:registration> для этой цели. Если я уже подключен к Facebook, когда захожу на страницу, все работает как положено (форма заполнена информацией из моей учетной записи Facebook). Но если я не подключен к Facebook, отображается следующая ошибка: Invalid 'client_id'..

Что я делаю не так?

Большое спасибо за вашу помощь.

Ниже приведен HTML-код, отображаемый с сервера:

<!doctype html>
<html xmlns:fb='http://www.facebook.com/2008/fbml'>
<head id='head'>
<title>MyWebSite - Signup</title>
<link rel='stylesheet' type='text/css' href='/client/Core.css'/>
<script language='JavaScript' type='text/javascript' src='/client/jQuery.js'></script>
<script type='text/javascript'>
function initialize() {
 $.getScript('client/Core.js');
 $.getScript(document.location.protocol + '//connect.facebook.net/en_US/all.js');
}

window.fbAsyncInit = function() {
 FB.init({
  appId   : 123456789, // replaced here by my App ID
  session : {},
  status  : true,
  cookie  : true,
  xfbml   : true
 });
 FB.Event.subscribe('auth.login', function() {
  window.location.href = 'DoLogin';
 });
};
</script>
</head>
<body onload='initialize();'>
<span id='fb-root'></span>
<fb:registration 
    fields='[{"name":"name"},{"name":"first_name"},{"name":"last_name"},{"name":"email"},{"name":"location"},{"name":"gender"},{"name":"password","view":"not_prefilled"},{"name":"captcha"}]' 
    redirect-uri='http://172.16.100.31/DoSignup'
    width='600'
    fb_only='false'
    allowTransparency='true'>
</fb:registration>
</body>
</html>

Ответы [ 6 ]

12 голосов
/ 16 февраля 2011

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

2 голосов
/ 12 мая 2011

Я столкнулся с той же проблемой, за исключением того, что у меня уже была отключена песочница. Я включил тег сценария как

<script src="http://connect.facebook.net/en_US/all.js#appId={YOUR_APP_ID}&xfbml=1"></script>

<fb:registration 
  fields="name,birthday,gender,location,email" 
  redirect-uri="https://developers.facebook.com/tools/echo/"
  width="530">
</fb:registration>

как это было на странице примера регистрации , однако на странице JavaScript SDK было

<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
  FB.init({
    appId  : 'YOUR APP ID',
    status : true, // check login status
    cookie : true, // enable cookies to allow the server to access the session
    xfbml  : true  // parse XFBML
  });
</script>

Удаление #appId={YOUR_APP_ID}&xfbml=1 из тега внешнего скрипта сделало свое дело.

0 голосов
/ 16 марта 2014

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

0 голосов
/ 16 мая 2012

Для тестирования установите YOUR_APP_ID на 113869198637480

0 голосов
/ 24 февраля 2012

Просто угадайте здесь - потому что у меня была похожая, но не идентичная проблема:

Если вы используете код XFBML Facebook на http://developers.facebook.com/docs/plugins/registration/ и замените слово {YOUR_APP_ID} на {1234123434534} (или что-то еще), это терпит неудачу, потому что это не ожидает фигурные скобки.(В отличие от других областей, в которых используются JSON и , они ожидают ).

Я не знаю, правильно ли вы поступили, но сделать ошибку легко,как я только что обнаружил.

0 голосов
/ 01 февраля 2011

Если вы зарегистрировали свое приложение в Facebook, они предоставят вам appID, который вам нужно будет использовать вместо «123456789» AppID в приведенном выше коде.

...