Ich benutze die JavaScript Google Data API und habe Probleme damit das AuthSub Skript korrekt funktioniert. Das ist mein momentanes Skript:Gdata JavaScript Authsub setzt Redirect fort
google.load('gdata', '1');
function getCookie(c_name){
if(document.cookie.length>0){
c_start=document.cookie.indexOf(c_name + "=");
if(c_start!=-1){
c_start=c_start + c_name.length+1;
c_end=document.cookie.indexOf(";",c_start);
if(c_end==-1) c_end=document.cookie.length;
return unescape(document.cookie.substring(c_start, c_end));
}
}
return "";
}
function main(){
var scope = 'http://www.google.com/calendar/feeds/';
if(!google.accounts.user.checkLogin(scope)){
google.accounts.user.login();
} else {
/*
* Retrieve all calendars
*/
// Create the calendar service object
var calendarService = new google.gdata.calendar.CalendarService('GoogleInc-jsguide-1.0');
// The default "allcalendars" feed is used to retrieve a list of all
// calendars (primary, secondary and subscribed) of the logged-in user
var feedUri = 'http://www.google.com/calendar/feeds/default/allcalendars/full';
// The callback method that will be called when getAllCalendarsFeed() returns feed data
var callback = function(result) {
// Obtain the array of CalendarEntry
var entries = result.feed.entry;
//for (var i = 0; i < entries.length; i++) {
var calendarEntry = entries[0];
var calendarTitle = calendarEntry.getTitle().getText();
alert('Calendar title = ' + calendarTitle);
//}
}
// Error handler to be invoked when getAllCalendarsFeed() produces an error
var handleError = function(error) {
alert(error);
}
// Submit the request using the calendar service object
calendarService.getAllCalendarsFeed(feedUri, callback, handleError);
}
}
google.setOnLoadCallback(main);
Wenn ich das aber ausführe, leitet mich die Seite zur Authentifizierungsseite weiter. Nachdem ich mich authentifiziert habe, sende mich zurück auf meine Seite und schicke mich dann schnell zurück auf die Authentifizierungsseite. Ich habe Warnungen hinzugefügt, um zu überprüfen, ob das Token gesetzt wird und es scheint nicht zu funktionieren. Hat jemand dieses Problem?
Das Problem ist, dass das Setzen des Cookies etwas Zeit in Anspruch nimmt, wenn Google zu Ihrer Website weiterleitet. Der Rückruf wird jedoch sofort ausgeführt, und bis zu diesem Zeitpunkt ist kein Cookie vorhanden, um die Authentifizierung zu überprüfen, sodass er erneut an Google weitergeleitet wird. Versuchen Sie, 'setTimeout' oder etwas zu verwenden, um die Authentifizierungsprüfung nach einer Sekunde oder so auszuführen, um sicher zu sein. – Anurag
@Annurag - post, dass als Antwort und Sie könnten einige Rep erhalten. Ich würde es für dich tun, aber das wäre Stehlen :) – Day
danke für den Tipp @Day .. Ideen für mehr rep immer willkommen :) – Anurag