Предотвращение отправки формы с помощью Dojo

У меня есть Dojo SubmitButton с jsId = "

Я ломал себе голову несколько дней, пытаясь получить список календарей от Google с помощью DotNetOpenAuth.

Я могу успешно получить список контактов с помощью образцов DotNetOpenAuth. Я интегрировал его со своим доменом, используя OpenId + OAuth. Все отлично работает, чтобы получить список контактов.

Итак, оттуда я изменил код, чтобы попытаться получить список календарей, и продолжаю получать ошибку 401. Unauthorized.

Я знаю, что это авторизация, потому что я могу получить Список контактов. Есть ли у кого-нибудь пример кода, как они получают календари или события календаря с помощью DotNetOpenAuth с Google ???

Спасибо

Обновление:

Спасибо за ответ. Я прочитал все, что смог достать. Вот что я сделал до сих пор

Шаг 1: Я создал новый GetCalendarEndPoint в GoogleConsumer.cs

private static readonly MessageReceivingEndpoint GetCalendarEndpoint = new MessageReceivingEndpoint("https://www.google.com/calendar/feeds/default", HttpDeliveryMethods.GetRequest);

Шаг 2: Затем я создал новый метод GetCalendars по образцу метода GetContacts в GoogleConsumer.cs - (перестроил dll и т. Д.)

    public static XDocument GetCalendars(ConsumerBase consumer, string accessToken, int maxResults/* = 25*/, int startIndex/* = 1*/) {
            if (consumer == null)
            {
                throw new ArgumentNullException("consumer");
            }

            var request = consumer.PrepareAuthorizedRequest(GetCalendarEndpoint, accessToken);
            var response = consumer.Channel.WebRequestHandler.GetResponse(request);
            string body = response.GetResponseReader().ReadToEnd();
            XDocument result = XDocument.Parse(body);
            return result;

Шаг 3. В моем приложении я изменил ScopeURI на URI календаря из GoogleConsumer следующим образом

private IAuthenticationRequest GetGoogleRequest()
{
    Realm realm = Request.Url.Scheme + Uri.SchemeDelimiter + Global.GoogleTokenManager.ConsumerKey + "/";
    IAuthenticationRequest authReq = relyingParty.CreateRequest(GoogleOPIdentifier, realm);

    // Prepare the OAuth extension
    string scope = GoogleConsumer.GetScopeUri(GoogleConsumer.Applications.Calendar);
    Global.GoogleWebConsumer.AttachAuthorizationRequest(authReq, scope);

    // We also want the user's email address
    var fetch = new FetchRequest();
    fetch.Attributes.AddRequired(WellKnownAttributes.Contact.Email);
    authReq.AddExtension(fetch);

    return authReq;
}

. , когда я запускаю приложение, я получаю сообщение 401 Unauthorized, когда делаю следующий вызов

 var calendars = GoogleConsumer.GetCalendars(Global.GoogleWebConsumer, State.GoogleAccessToken, 25, 1);

. Я также проверил, существует ли токен State.GoogleAccess, просто отобразив его на моем экране, прежде чем я активирую метод, выполняющий этот вызов.

Опять же, если я выполняю

var calendars = GoogleConsumer.GetContacs(Global.GoogleWebConsumer, State.GoogleAccessToken, 25, 1);

, то он работает ??????? Спасибо за помощь.

6
задан Brett Allred 2 October 2010 в 18:32
поделиться