Я использую JavaScript API данных Google и имею проблемы с тем, чтобы сценарий AuthSub работал правильно. Это мой сценарий в настоящее время:Gdata JavaScript Authsub продолжает перенаправление
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);
Однако при запуске страницы страница перенаправляет меня на страницу аутентификации. После того, как я аутентифицирую его, отправьте меня на мою страницу, а затем снова вернет меня на страницу аутентификации. Я включил оповещения, чтобы проверить, установлен ли токен, и он, похоже, не работает. У кого-нибудь есть эта проблема?
проблема в том, что настройка файла cookie занимает некоторое время, когда Google перенаправляет обратно на ваш сайт. Тем не менее, обратный вызов запускается немедленно, и к этому моменту нет cookie для проверки подлинности, поэтому он снова перенаправляет обратно в google. Попробуйте использовать 'setTimeout' или что-то, чтобы запустить проверку подлинности через секунду или около того, чтобы быть уверенным. – Anurag
@Anurag - опубликуйте это как ответ, и вы можете получить репутацию. Я бы сделал это за вас, но это было бы краже :) – Day
спасибо за отзыв @Day .. идеи для большего количества rep всегда приветствуются :) – Anurag