Я бы попробовал ваш код еще раз, и, возможно, console.log (соответственно) в вашем методе обратного вызова для функции addevents.Я протестировал ваш код на fbrell.com, и он, кажется, работал отлично и как ожидалось.
edit: после небольшого исследования (и вашего исправленного кода ..) я обнаружил, что fb:Кнопка входа не гарантирует, что ваше приложение имеет правильные разрешения, которые запрашивает параметр perms.Мы выясняем это, когда выполняем запрос Graph, и это не удается.Таким образом, мы улавливаем ошибку, а затем запускаем модальный вход в систему с помощью метода FB.login
и запрашиваем разрешение create_event
.Когда пользователь принимает это диалоговое окно, мы повторяем попытку создания события.
<fb:login-button
autologoutlink="true"
perms="email,user_birthday,status_update,publish_stream,create_event">
</fb:login-button>
<a href="#" id="create_event" onclick="create_event();">create</a>
<script>
FB.XFBML.parse();
document.getElementById('create_event').onclick = function() { create_event(); }
function create_event()
{
FB.api('/me/events', 'post', {
name: "JS-SDK Event",
start_time: 1272718027,
location: "Anywhere USA",
privacy_type: "OPEN"
}, function(resp) {
if (typeof resp.error != 'undefined')
{ /*this failed. most likely because we don't have the extended permission
for create_event. so lets check for it, ask for it, and try to create
the event again. but first, we'll make sure that the error message says
something about 'create_event' so we don't launch an infinite loop
*/
if (resp.error.message.match(/create_event/))
{
FB.login(function(response)
{
if (response.session
&& response.status == 'connected'
&& response.perms.match(/create_event/))
{
//this user is connected & we have create event permission.
create_event();
}
},
{
perms: 'create_event'
});
}
}
});
}
</script>
Рабочий код на fbrell.com: http://fbrell.com/saved/17c7b60eab91e6736a2a10c87d53c5b8