Análisis Json de eventos de Facebook

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:

https://graph.facebook.com/64306617564/events?&access_token=AAACEdEose0cBAOLAFWMKPmvgqEwap1ldnl7DeZBDKJC6YTZC4Goh6K5NHsvpOFmFQaGp1IekVsCxZCZCz3lwGpRcQG9ZBkcMrZAnLk4As8kgZDZD

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........

preguntado el 02 de mayo de 12 a las 19:05

1 Respuestas

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 or haz tu propia pregunta.