403 забранено изключение при достъп до маркер за достъп

Опитвам се да генерирам нов токен за достъп, когато токенът за достъп от Google е изтекъл. Но на моя производствен сървър получавам по-долу споменатото изключение:

Exception:
at System.Net.HttpWebRequest.GetResponse() at System.Net.HttpWebRequest.GetResponse() at     
GoogleCalendarProvider_V3.ExchangeCodeWithAccessAndRefreshToken(String RefreshToken)

Exception Message:
The remote server returned an error: (403) Forbidden.

Създавам http уеб заявка, за да получа токена за достъп. моля, проверете кода по-долу за това

string Url = "https://accounts.google.com/o/oauth2/token";
    string grant_type = "refresh_token";
    string data = "client_id={0}&client_secret={1}&refresh_token={2}&grant_type={3}";

        HttpWebRequest request = HttpWebRequest.Create(Url) as HttpWebRequest;
        string result = string.Empty;
        request.Method = "POST";           
        request.KeepAlive = true;
        request.ContentType = "application/x-www-form-urlencoded";                    
        string param = string.Format(data, ClientID, ClientSecret, RefreshToken, grant_type);
        request.Credentials = CredentialCache.DefaultCredentials;
        var bs = Encoding.UTF8.GetBytes(param);
        using (Stream reqStream = request.GetRequestStream())
        {
            reqStream.Write(bs, 0, bs.Length);
        }
        using (WebResponse response = request.GetResponse())
        {
            var sr = new StreamReader(response.GetResponseStream());
            result = sr.ReadToEnd();
            sr.Close();
        }

моля, помогнете ми в този контекст.


person Himanshu Jain    schedule 05.11.2013    source източник
comment
В това също използвам концепцията за резба. В това множество нишки имат достъп до календара на Google за токен за достъп. Има ли връзка с този проблем   -  person Himanshu Jain    schedule 07.11.2013


Отговори (1)


Разгледайте този въпрос Обмяната на токени за API на YouTube C# OAuth за access_token връща невалидна заявка

Изглежда, че е подобен проблем.

person pinoyyid    schedule 07.11.2013
comment
Благодаря за вашия отговор. Всъщност изпращам правилната заявка, но веднъж при 50 изпълнение получавам изключение от 403 Forbidden. Иначе върви добре. Опитах процеса, който ми казахте, но все още получавам същия проблем. Получавам изключение 403, когато изпращам твърде много заявки, използвайки нишки. - person Himanshu Jain; 08.11.2013
comment
Може да се окаже, че 403 forbidled всъщност е дроселиращо изключение. Имам подобни проблеми с Drive, който ми дава 403 Rate Limit Exceeded. Трябва да забавя транзакциите си в Диск до ‹ една на 3 секунди, за да избегна проблема - person pinoyyid; 08.11.2013
comment
как мога да проверя дали това е изключение от ограничение на скоростта или нещо друго. Така че трябва ли да направя заспиването на нишката, ако хвърли изключение?. - person Himanshu Jain; 08.11.2013
comment
всичко, което мога да предложа, е да забавите извикванията на API и да видите дали проблемът е разрешен. Когато получите 403, експоненциално отстъпвате ли и опитвате ли отново и работи ли повторният опит? - person pinoyyid; 08.11.2013
comment
Събитие след използване на експоненциално забавяне все още получава същия проблем. Всъщност имам 20 акаунта и във всеки акаунт имам 20 календара, което означава, че наведнъж изпълнявам 400 календара (400 изпълнение в Google календар), така че понякога върви добре и понякога хвърля изключение. всичките 20 акаунта са в теми. - person Himanshu Jain; 08.11.2013
comment
Звучи много като проблема, който имам, опитвайки се да направя няколко едновременни актуализации на Диск. Единственото решение, което намерих, беше да забавя скоростта на извикванията на API. - person pinoyyid; 08.11.2013
comment
Сега ще се опитам да направя някои нишки за заспиване в моя код. Много благодаря за твоята помощ. - person Himanshu Jain; 08.11.2013