Я пытаюсь реализовать Подключение Facebook на веб-сайте. Я пытаюсь работать с JavaScript SDK Facebok. Я плохо знаком с ним и к сожалению большинство ссылок, предоставленных в Facebook, WIKI устарела... Возврат 404 не найденный. Так или иначе я добавил этот код перед окончанием </body>
:
<script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" type="text/javascript"></script>
<div id="fb-root"></div>
<script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php" type="text/javascript"> </script>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
FB.init({
appId : '12344', // my real app id is here
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : false // parse XFBML
});
FB.login(function(response) {
if (response.session) {
if (response.perms) {
alert('user is logged in and granted some permissions');
// user is logged in and granted some permissions.
// perms is a comma separated list of granted permissions
} else {
alert('user is logged in, but did not grant any permissions');
// user is logged in, but did not grant any permissions
}
} else {
alert('user is not logged in');
// user is not logged in
}
}, {perms:'email'});
</script>
И у меня есть кнопка входа в систему в некотором другом месте (очень перед вышеупомянутыми сценариями) на той же странице, представленной с:
<fb:login-button v="2">Connect with Facebook</fb:login-button>
Эта кнопка представляет как нормальная fb кнопка соединения, и нажатие на нее открывает новое всплывающее окно, как она обычно должна. Проблема состоит в том, что это показывает, что 'недопустимый ключ API указал' ошибку. При осмотре строки поиска всплывающего окна я вижу, что api_key=undefined передается ему :(
Какая-либо идея об этом? Я пытаюсь зафиксировать это в течение прошлых 5 часов теперь... Помогите мне, узнал, почему корректный ключ API не передается всплывающему окну.
Заранее спасибо.
Я делаю то же самое, и я нашел пример, который очень просто реализовать и понять (вот используйте jQuery, но вы можете сделать то же самое и без библиотек):
<body>
<div>
<button id="login">Login</button>
<button id="disconnect">Disconnect</button>
</div>
<div id="user-info" style="display: none;"></div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
// initialize the library with the API key
FB.init({ appId : '12344' });
// fetch the status on load
FB.getLoginStatus(handleSessionResponse);
$('#login').bind('click', function() {
FB.login(handleSessionResponse);
});
$('#disconnect').bind('click', function() {
FB.api({ method: 'Auth.revokeAuthorization' }, function(response) {
clearDisplay();
});
});
// no user, clear display
function clearDisplay() {
$('#user-info').hide('fast');
}
// handle a session response from any of the auth related calls
function handleSessionResponse(response) {
// if we dont have a session, just hide the user info
if (!response.session) {
clearDisplay();
return;
}
// if we have a session, query for the user's profile picture and name
FB.api(
{
method: 'fql.query',
query: 'SELECT name, pic FROM profile WHERE id=' + FB.getSession().uid
},
function(response) {
var user = response[0];
$('#user-info').html('<img src="' + user.pic + '">' + user.name).show('fast');
}
);
}
</script>
</body>
Посмотрите здесь , чтобы увидеть весь код, и здесь вы можете найти другой ресурс.
Необходимо задать URL-адрес после авторизации холста и убедиться, что базовый URL-адрес холста является префиксом URL-адреса после авторизации.
Я установил для своего адреса подключения к Facebook значение www, и я заходил на свой тестовый сайт без www, когда я переключился на версию с www, fb connect работал нормально.