Ошибка данных Google Контакт Api 401

Я использую Google Contacts Data Api, чтобы получить все контакты пользователей, следуя документации здесь https://developers.google.com/google-apps/contacts/v3/

Сначала я использовал Google Auth для аутентификации пользователей в приложении, используя следующий код

string authSubUrl = AuthSubUtil.getRequestUrl("http://localhost:62439/ContactImporter/GoogleContacts.aspx", "https://www.google.com/m8/feeds/", true, true);
    Response.Redirect(authSubUrl);

через секунду после того, как пользователь успешно вошел в систему, я перенаправляю на страницу GoogleContacts.aspx с токеном запроса, предоставленным Google, а затем пытаюсь получить контакты по следующему коду

if (!string.IsNullOrEmpty(Request["token"]))
{
    GAuthSubRequestFactory authFactory = new GAuthSubRequestFactory("cp", "alpha");   
    RequestSettings rs = new Google.GData.Client.RequestSettings("alpha",Request["token"]);
    ContactsRequest cr = new ContactsRequest(rs);

    Feed<Contact> f = cr.GetContacts();

    foreach (Contact entry in f.Entries)
    {
        foreach (EMail email in entry.Emails)
        {
            Response.Write("\n" + email.Address);
        }
    }
}

этот код работал около 4 или 5 дней, но теперь он не работает и выдает мне следующую ошибку

Удаленный сервер возвратил ошибку: (401) Несанкционированный. в Google.GData.Client.GDataRequest.Execute() в Google.GData.Client.GDataGAuthRequest.Execute(Int32 retryCounter) в Google.GData.Client.GDataGAuthRequest.Execute() в Google.GData.Client.ServiceUuu. queryUri, DateTime ifModifiedSince, String etag, Int64& contentLength) в Google.GData.Client.Service.Query(Uri queryUri, DateTime ifModifiedSince) в Google.GData.Client.Service.Query(FeedQuery feedQuery.Ceed.Data.Cata.GateGData.GataCidF1.get_AtomFeed() at Google.GData.Client.Feed1.d__0.MoveNext() в GoogleContacts.Page_Load(Отправитель объекта, EventArgs e) в d:\Working Folder\API's\ContactImporter\GoogleContacts.aspx.cs: строка 25 в System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Объект o, Объект t, EventArgs e) в System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Отправитель объекта, EventArgs e) в System.Web.UI.Control.OnLoad(EventArgs e) в System.Web.UI.Control.LoadRecursive() в System.Web.UI.Page.ProcessRequestMain(логическое значение includeStagesBeforeAsyncPoint, логическое значение includeStagesAfterAsyncPoint)

Любые предложения о том, как решить эту ошибку?

1 ответ

Это не будет ответом, который вы ищете, но я могу успокоить ваш разум. В вашем коде нет ничего плохого. Google отключил службу контактов API без предварительного уведомления. Никто не знает, сделали ли они это устаревшим или сняли его по какой-то другой причине. Со вчерашнего дня они даже сняли документацию по API. Однако ссылка на него по-прежнему размещена в их списке API по адресу https://developers.google.com/google-apps/app-apis Больше нет никакой документации и нет объяснения со стороны Google, почему это было неисправность. Надеюсь, это не постоянная вещь. Google еще не ответил разработчикам по этому вопросу.

Другие вопросы по тегам