Google Classrooms API Неправильные области видимости - PullRequest
0 голосов
/ 27 апреля 2020

Впервые в API Oauth 2.0 и возникли проблемы с определением проблемы с API Google Classrooms. Я использовал пример кода, предоставленный Google по этому адресу https://developers.google.com/classroom/quickstart/dotnet, и смог успешно подключиться к API и получить информацию о некоторых курсах.

Сейчас я пытаюсь получить доступ к объявлениям в классе, используя предложенные требования от Google https://developers.google.com/classroom/reference/rest/v1/courses.announcements/list. Я изменил код следующим образом, но при получении сообщения об ошибке, в котором говорится, что у запроса Google.Apis.Requests.RequestError недостаточно областей проверки подлинности. [403]. В приведенном ниже коде вы можете видеть, что я реализовал правильные области действия

    Dim credential As UserCredential
    Dim Scopes2 As String() = {ClassroomService.Scope.ClassroomAnnouncements, ClassroomService.Scope.ClassroomAnnouncementsReadonly}
    Using stream = New FileStream("credentials.json", FileMode.Open, FileAccess.Read)
        Dim credPath As String = "token.json"
        credential = GoogleWebAuthorizationBroker.AuthorizeAsync(GoogleClientSecrets.Load(stream).Secrets, Scopes2, "user", CancellationToken.None, New FileDataStore(credPath, True)).Result
        Console.WriteLine("Credential file saved to: " & credPath)
    End Using

    Dim service = New ClassroomService(New BaseClientService.Initializer() With {
        .HttpClientInitializer = credential,
        .ApplicationName = ApplicationName
    })

    Dim request As CoursesResource.AnnouncementsResource.ListRequest = service.Courses.Announcements.List("70506149429")
    Dim response As ListAnnouncementsResponse = request.Execute()


    Console.WriteLine("CourseAnnouncements:")

    If response.Announcements IsNot Nothing AndAlso response.Announcements.Count > 0 Then

        For Each announcement In response.Announcements
            Console.WriteLine("{0} ({1})", announcement.Text, announcement.Id)
        Next
    Else
        Console.WriteLine("No announcement found.")
    End If

    Console.Read()

1 Ответ

0 голосов
/ 28 апреля 2020

Я обнаружил, что мой инструмент создает папку с именем "token. json", где я пометил вышеуказанный credPath как String = "token. json". если я переименую или удалю эту папку, она попросит меня пройти повторную аутентификацию и разрешит подключение.

...