2013-08-22 4 views
1

J'essaie de montrer quelques données de mon google calendar dans une page Web que je développe avec le framework fullcalendar.même domaine avec fullcalendar et google calendar

Mais j'ai le problème appelé origine du même domaine ... Je ne sais pas comment le résoudre. Dans la documentation, fullcalendar dit:

<script type='text/javascript'> 

$(document).ready(function() { 
$('#calendar').fullCalendar({ 
    events: 'http://www.google.com/your_feed_url/' 
}); 
}); 

</script> 

Mais en faisant cela avec mon calendrier public me donne juste des problèmes.

J'essaie de lire le calendrier au format json en utilisant un php dans le serveur, mais les résultats sont assez similaires. Aucun problème concernant les domaines mais les événements ne sont pas affichés. Je reçois une erreur à propos de formatDate n'étant pas initialisé, donc je pense que je ne lis pas les événements.

Une idée sur la façon de résoudre ce problème? Je suppose que si fullcalendar permet de le faire avec gcalendar, cela signifie que cela peut être fait.

ajouter quelques événements JSON:

{"version":"1.0","encoding":"UTF-8","feed": {"xmlns":"http://www.w3.org/2005/Atom","xmlns$openSearch":"http://a9.com/- /spec/opensearchrss/1.0/","xmlns$gCal":"http://schemas.google.com/gCal/2005","id": {"$t":"http://www.google.com/calendar/feeds/aristeidhsxr%40gmail.com/public/basic"},"update d":{"$t":"2013-08-22T09:47:26.000Z"},"category": [{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005 #event"}],"title":{"$t":"[email protected]","type":"text"},"subtitle": {"$t":"[email protected]","type":"text"},"link": [{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/embed? src=aristeidhsxr%40gmail.com"},{"rel":"http://schemas.google.com/g/2005#feed","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/aristeidhsxr%40gmail.com/public/basic"},{"rel":"http://schemas.google.com/g/2005#batch","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/aristeidhsxr%40gmail.com/public/basic/batch"},{"rel":"self","type":"application/atom+xml","href":"http://www.google.com/calendar/feeds/aristeidhsxr%40gmail.com/public/basic?alt=json&max-results=25"}],"author":[{"name":{"$t":"ΑÏιστείδης ΧÏήστου"},"email":{"$t":"[email protected]"}}],"generator":{"$t":"Google Calendar","version":"1.0","uri":"http://www.google.com/calendar"},"openSearch$totalResults":{"$t":19},"openSearch$startIndex":{"$t":1},"openSearch$itemsPerPage":{"$t":25},"gCal$timezone":{"value":"Europe/Madrid"},"gCal$timesCleaned":{"value":0},"entry":[{"id":{"$t":"http://www.google.com/calendar/feeds/aristeidhsxr%40gmail.com/public/basic/2gh1aqf61krdvgr85eseoclr64"},"published":{"$t":"2013-08-22T09:47:26.000Z"},"updated":{"$t":"2013-08-22T09:47:26.000Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://schemas.google.com/g/2005#event"}],"title":{"$t":"dghhfdg","type":"html"},"summary":{"$t":"Cuándo: vie 30 de ago de 2013 21:30 al 22:30 \nCEST\u003cbr\u003e\n\n\n\u003cbr\u003eEstado del evento: bekräftad","type":"html"},"content":{"$t":"Cuándo: vie 30 de ago de 2013 21:30 al 22:30 \nCEST\u003cbr /\u003e\n\n\n\u003cbr /\u003eEstado del evento: bekräftad","type":"html"},"link":[{"rel":"alternate","type":"text/html","href":"http://www.google.com/calendar/event?eid=MmdoMWFxZjYxa3JkdmdyODVlc2VvY2xyNjQgYXJpc3RlaWRoc3hyQG0","title":"alternate"} 

Cela fait partie du fichier JSON, pas complète.

J'ai essayé de mettre quelques événements directement comme l'un de l'utilisateur dit:

$(document).on('pageshow','#agenda',function(){  

     $('#calendar').fullCalendar({ 
     events: [{ 
        title: 'Event 1', start: '2013-08-26T19:10:00Z', 
        end: '2013-08-28T19:20:00Z' 
        },{ 
        title: 'Event 2', start: '2013-08-27T16:25:00Z', 
        end: '2013-08-27T18:45:00Z' 
       }] 
     }); 
    }); 

mais je m'y suis une erreur en disant:

Uncaught TypeError: Cannot read property 'formatDate' of undefined gcal.js:11 
(anonymous function) gcal.js:11 
(anonymous function) gcal.js:107 

Répondre

1

Êtes-vous sûr de ce que vous événements parse corrects de http://www.google.com/your_feed_url/ en php? Les dates de début et de fin des événements doivent être au format ISO 8601, quelque chose comme ceci 2013-07-09T19:10:00-04:00. Vous pouvez utiliser fullcalendar $.fullCalendar.formatDate(from, format); pour convertir la date et l'heure.

Vous pouvez également utiliser Google Calendar Api pour obtenir des événements.

événements doivent ressemble à quelque chose comme ceci:

events: [{ 
    title: 'Event 1', start: '2013-07-09T19:10:00-04:00', 
    end: '2013-07-09T19:20:00-04:00', allDay: false 
    },{ 
    title: 'Event 2', start: '2013-08-22T16:25:00-04:00', 
     end: '2013-08-22T18:45:00-04:00', allDay: true 
}] 

Pour calendrier public Google que vous pouvez faire quelque chose comme ceci:

var url = 'http://google.com/calendar/feeds/[email protected]/public/full?alt=json'; 
$.ajax({ 
    url: url, 
    dataType: 'jsonp', 
    success: function(response){ 
     var googleEvents = new Array(); 
     for(var i = 0; i < response.feed.entry.length; i ++){ 
      googleEvents[i] = { 
       title : response.feed.entry[i].title.$t, 
       start: response.feed.entry[i].gd$when[0].startTime, 
       end: response.feed.entry[i].gd$when[0].endTime 
      }; 
     } 
     //init events 
     calendar = $('#calendar-container').fullCalendar({ 
      events: googleEvents 
     }); 
    } 
}); 

Paramètre alt spécifier le format de réponse.

+0

Je viens de nourrir avec un fichier xml de google address ou json de fichier php. Mais les dates sont correctes dans les deux cas. Le seul problème est que les événements ne sont pas montrés dans le deuxième ou le même problème de domaine dans le premier – Biribu

+0

S'il vous plaît, collez l'exemple de vos événements –

+0

J'ai ajouté une partie de mon fichier json – Biribu