example eventos elementos ejemplos dinámicamente creados asociar activar jquery facebook facebook-graph-api facebook-events

eventos - Cree un evento de Facebook usando JQuery y la API gráfica mediante programación



jquery: asociar eventos a elementos html creados dinámicamente (2)

¿Hay alguna manera de usar una función JQuery para crear un evento mediante programación en la página de Facebook de un usuario? Creé una aplicación que solicita al usuario los permisos create_event a través de:

<input type="button" value="Add to Facebook" onclick="document.location=''http://www.facebook.com/dialog/oauth?client_id=<AppID>&redirect_uri=<redirecturi>&scope=create_event,offline_access,manage_pages&response_type=token''">

Que regresa correctamente a la página de redirección con los parámetros access_token y expires_in. La página utiliza el siguiente código para analizar los datos (menos elegante, pero solo estoy tratando de hacer que esto funcione como una prueba)

<script> $(document).ready(function(){ var url = window.location.href; var fbParameters = url.substring(url.indexOf(''#'')+1,url.length); var accesstoken; if(fbParameters.indexOf("access_token=")>=0){ accesstoken = fbParameters.substring(fbParameters.indexOf("access_token=")+("access_token=").length,fbParameters.length); accesstoken=accesstoken.substring(0,accesstoken.indexOf(''&'')); console.log(accesstoken); } var params = {''access_token'':accesstoken,''name'':''test'',''location'':''someplace'',''start_time'':''1322719200''} $.getJSON(''https://graph.facebook.com/me/events?callback=?'',params,function(data){console.log(data)}); }); </script>

También intenté usar JQuery $ .post y también ingresé manualmente en la URL para intentar crear este evento de prueba. Esto devuelve:

XMLHttpRequest cannot load https://graph.facebook.com/me/events?. Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin.

También intenté modificar la URL a / User ID / events en lugar de / me / events. Facebook sigue volviendo:

({ "data": [ ] });

Si elimino "eventos" de la URL, accede a la información del usuario como se esperaba. ¿Alguien sabe si lo que estoy tratando de hacer es realmente posible? Siento que me falta algo obvio.


Bien después de buscar en su código, encontré que en la variable params está usando "accesstoken" que debería ser "access_token". También use $ .post para crear un evento en Facebook. También use el formato estándar de fecha / hora para "start_time". Déjame saber si funciona.


Llamar a las funciones REST de Graph API realmente no funciona bien con JQuery puro debido a la misma política de origen ( http://en.wikipedia.org/wiki/Same_origin_policy ).

Es una mejor idea usar el JavaScript SDK que proporciona Facebook, crea un iframe oculto para ejecutar tareas en el dominio de Facebook y devuelve los eventos a su página para lidiar muy bien con todos los problemas de autenticación y aprobación de eventos para usted.

Puede encontrar muestras de código, documentación y fragmentos en el sitio web de desarrolladores de Facebook ( http://developers.facebook.com/docs/reference/javascript/ ) y aquí ( http://developers.facebook.com/tools/console/ )

Por ejemplo, la creación de un evento se ve así:

var event = { name: ''Name of your event'', description: ''Description of your event'', location: ''Location of event'', start_time: Math.round(new Date().getTime()/1000.0), // Example Start Date end_time: Math.round(new Date().getTime()/1000.0)+86400 // Example End Date }; FB.api(''/me/events'', ''post'', event, function (result) { console.log(result); });