0
如何在Facebook应用程序中显示事件?我向我的Facebook帐户添加了一个活动,但该活动未显示在我的应用程序中。如何在Facebook应用程序中显示事件?
如何在Facebook应用程序中显示事件?我向我的Facebook帐户添加了一个活动,但该活动未显示在我的应用程序中。如何在Facebook应用程序中显示事件?
事件可通过Facebook Graph API获得,就像所有数据将作为JSON对象返回一样。
要检索它们,您必须发送一个有效的访问令牌。
有多种方法来检索数据 - 您可以使用不同的语言(PHP或Javascript最常见)和不同的技术(FQL语句,预定义的方法等)。
我这样做使用Javascript:
<script>
window.fbAsyncInit = function() {
FB.init({appId: 'your app id', status: true, cookie: true,
xfbml: true});
};
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol +
'//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
</script>
建设所需的url和回调处理返回的:
通过在页面的底部添加此代码初始化的JavaScript SDK data: 我用FB.getLoginStatus返回一个由FB.init创建的会话对象 - 它包含必要的访问令牌。 然后你必须指定一个函数,这个函数将被返回的数据调用, processResult()。您可以使用JSONP将数据直接返回到JSON对象。
getEvents: function(){
FB.getLoginStatus(function(response){
if (response.session){
var graphURL = 'https://graph.facebook.com/me/events?access_token=' +
response.session.access_token + '&callback=processResult&limit=10';
var script = document.createElement('script');
script.src = graphURL;
document.body.appendChild(script);
}
});
}
该调用返回的对象如下所示,并包含可用于在需要时分页结果的url。
processResult(
{"data": [{"name": "Test event in Group nnn",
"start_time": "2011-08-01T05:30:00",
"end_time": "2011-08-01T06:30:00",
"location": "Location",
"id": "194845583864369",
"rsvp_status": "attending"},],
"paging": {
"previous": "https://graph.facebook.com/me/events?access_token=183551578351719\u00257C2.uakDQKBYcQSBrkEGdQj_QA__.3600.1303293600.1-522406451\u00257CvK4NtMrjkKJOVrUvRw2zB3b9w7w&callback=Drupal.EventBook.processResult&limit=10&since=1312176600",
"next": "https://graph.facebook.com/me/events?access_token=183551578351719\u00257C2.uakDQKBYcQSBrkEGdQj_QA__.3600.1303293600.1-522406451\u00257CvK4NtMrjkKJOVrUvRw2zB3b9w7w&callback=Drupal.EventBook.processResult&limit=10&until=1312176600"
}
});
作为回调脚本的例子,这里是一个我以前是想说明我在一个jQuery UI对话框中的所有事件的名称:
processResult: function(events) {
if (events.paging == undefined) {
html = "No more results";
}
else {
html = "<div>";
graphURL = events.paging.next;
for (var event in events.data) {
html += '<p>' + events.data[event].name + '</p>';
}
html +="</div>";
}
dialogbox = jQuery('#eb_dialog').html(html)
.dialog({
autoOpen: false,
title: 'List Event(s)',
modal:true,
width:600,
resizable:false,
buttons: {'Open Event':
function() {openSelectedEvents();
},'Cancel':function() {jQuery(this).dialog('close');}},
});
dialogbox.dialog('open');
}
你能告诉我们你的”到目前为止做了什么?你的一些代码? – ifaour 2011-04-20 08:04:54