Google Classrooms API错误的范围

问题描述 投票:0回答:1

新的Oauth 2.0 API's和有一些麻烦弄清楚与Google Classrooms API的isssue。我利用了谷歌给出的示例代码,在这个网址上。https:/developers.google.comclassroomquickstartdotnet。并能够成功地连接到API和拉下一些课程信息。

我现在试图访问课堂公告,使用建议的要求从谷歌 https:/developers.google.comclassroomreferencerestv1courses.announcionslist。. 我修改了以下代码,但收到错误信息,说明Google.Apis.Requests.RequestErrorRequest的认证范围不足。[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()
c# google-classroom
1个回答
0
投票

我最终发现,我的工具创建了一个名为 "token.json "的文件夹,我将上面的credPath标注为String = "token.json",如果我重命名或删除这个文件夹,它要求我重新认证,并允许连接。

© www.soinside.com 2019 - 2024. All rights reserved.