Análisis Json de eventos de Facebook
Frecuentes
Visto 2,163 equipos
1
Tuve algunos problemas para obtener json de los eventos de un grupo en Facebook y luego ponerlos en una vista de tabla para usarlos en una aplicación móvil Appcelerator.
La idea es tener esto como un calendario para mostrar los eventos de un club de una manera sencilla.
Quiero mostrar el nombre del evento. La imagen de ese evento y la fecha del evento.
Todo en un tablero.
Llegué a la parte donde puedo obtener el nombre y la fecha de los eventos con este código:
Ti.UI.backgroundColor = '#dddddd';
var access_token='AAACEdEose0cBAAICGa4tFTcZAqCOGm2w9qPYGZBwNtJ1oZAcwaMAP2DDHZCN58cvVBZCHZADZAZBTPC8tTnpfQ7uGKI5j3SbMYcRmWquZCdPzhwZDZD';
var url = "https://graph.facebook.com/64306617564/events?&access_token=" + access_token ;
var win = Ti.UI.createWindow();
var table = Ti.UI.createTableView();
var tableData = [];
var json, data, row, name, start_time, id;
var xhr = Ti.Network.createHTTPClient({
onload: function() {
// Ti.API.debug(this.responseText);
json = JSON.parse(this.responseText);
for (i = 0; i < json.data.length; i++) {
data = json.data[i];
row = Ti.UI.createTableViewRow({
height:'60dp'
});
var name = Ti.UI.createLabel({
text:data.name,
font:{
fontSize:'18dp',
fontWeight:'bold'
},
height:'auto',
left:'50dp',
top:'5dp',
color:'#000',
touchEnabled:true
});
var start_time = Ti.UI.createLabel({
text:'"' + data.start_time + '"',
font:{
fontSize:'13dp'
},
height:'auto',
left:'15dp',
bottom:'5dp',
color:'#000',
touchEnabled:true
});
row.add(name);
row.add(start_time);
tableData.push(row);
}
table.setData(tableData);
},
onerror: function(e) {
Ti.API.debug("STATUS: " + this.status);
Ti.API.debug("TEXT: " + this.responseText);
Ti.API.debug("ERROR: " + e.error);
alert('There was an error retrieving the remote data. Try again.');
},
timeout:5000
});
xhr.open("GET", url);
xhr.send();
Pero cuando quiero que el evento específico se abra en una nueva ventana cuando se hace clic, solo obtengo el evento que se encuentra en último lugar en la pantalla cuando coloco esto en un navegador:
Y el token de acceso caduca MUY rápido. ¿Alguna idea de cómo hacer un token de acceso que dure más?
Bueno, el código que estoy usando para abrir la ventana es:
table.addEventListener('click',function(e) {
// Create the new window with the link from the post
var blogWindow = Ti.UI.createWindow({
title : data.name,
modal : true,
barColor: '#050505',
backgroundColor: '#050505'
});
var webView = Ti.UI.createWebView({url:'http://www.facebook.com/events/' + data.id});
blogWindow.add(webView);
// Create the close button to go in the left area of the navbar popup
var close = Titanium.UI.createButton({
title: 'Close',
style: Titanium.UI.iPhone.SystemButtonStyle.PLAIN
});
blogWindow.setLeftNavButton(close);
// Handle the close event
close.addEventListener('click',function() {
blogWindow.close();
});
blogWindow.open();
});
win.add(table);
win.open();
en mi opinión, eso debería abrir el evento en el que se hace clic analizando el ID de la fila y colocándolo después del enlace.
¿Soy retrasado o qué está mal?
No importa en qué evento haga clic, simplemente abra el último todas las veces.
¿Y cómo puedo obtener una miniatura de los eventos?
Por favor ayuda........
1 Respuestas
0
Cuando hace clic en la tabla para obtener valor de datos que no está disponible. Puede lograrlo usando su variable personalizada, intente poner esta línea de código en la creación de su fila donde agrega su fila en la matriz, es decirrow.data = data;
y en el evento de clic en la tabla, obtenga ese objeto usando esto alert(e.source.data);
y compruébalo. La mejor de las suertes
Respondido 04 ago 12, 08:08
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas facebook json facebook-graph-api appcelerator appcelerator-mobile or haz tu propia pregunta.