Ошибка разрешения доступа к вложениям задания Класса с помощью C#C#

Место общения программистов C#
Ответить
Anonymous
 Ошибка разрешения доступа к вложениям задания Класса с помощью C#

Сообщение Anonymous »

С помощью кода метода, который я привел ниже, я пытаюсь получить список дополнительных вложений к заданию Класса. Я захожу под учетной записью учителя класса, и, как вы можете видеть в начале, добавлены все возможные разрешения. Проблема: я получаю следующую ошибку:
"Класс обслуживания выдал исключение. HttpStatusCode запрещен. В запросе недостаточно областей аутентификации".
Мой метод:

Код: Выделить всё

public class Classroom
{
static string[] Scopes = { ClassroomService.Scope.ClassroomCourses, ClassroomService.Scope.ClassroomCourseworkmaterials,
ClassroomService.Scope.ClassroomCourseworkMe, ClassroomService.Scope.ClassroomCourseworkStudents, ClassroomService.Scope.ClassroomCourseworkStudentsReadonly, ClassroomService.Scope.ClassroomGuardianlinksStudents,
ClassroomService.Scope.ClassroomAnnouncements, ClassroomService.Scope.ClassroomCourseworkMe, ClassroomService.Scope.ClassroomProfileEmails, ClassroomService.Scope.ClassroomProfilePhotos,
ClassroomService.Scope.ClassroomPushNotifications, ClassroomService.Scope.ClassroomRosters, ClassroomService.Scope.ClassroomStudentSubmissionsMeReadonly,
ClassroomService.Scope.ClassroomStudentSubmissionsStudentsReadonly, ClassroomService.Scope.ClassroomTopics};
static string ApplicationName = "ControlGoogleMCV";

public GDrive_baj GDrive_bajD = new GDrive_baj();
public void Main()
{
ClientSecrets secrets = new ClientSecrets()
{
ClientId = "________________",
ClientSecret = "__________________________"
};

UserCredential credential;

using (var stream =
new FileStream(Form1.ObtenerAtributo("rutalocaljson"), FileMode.Open, FileAccess.Read))
{

string credPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
credPath = Path.Combine(credPath, ".credentials/", System.Reflection.Assembly.GetExecutingAssembly().GetName().FullName, "paraclassroom");
credential = Google.Apis.Auth.OAuth2.GoogleWebAuthorizationBroker.AuthorizeAsync(secrets,
Scopes,
"_________",
CancellationToken.None,
new FileDataStore(credPath, true)).Result;
Console.WriteLine("Credential file saved to: " + credPath);
}

// Create Classroom API service.
var service = new ClassroomService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName,
});

// Define request parameters.
CoursesResource.ListRequest request = service.Courses.List();
request.PageSize = 10;

try
{
CoursesResource.ListRequest lr = new CoursesResource.ListRequest(service);

string cadbusname = Interaction.InputBox("Cadena de búsqueda en el atributo ''name'' del curso. ''Cancelar'' no " +
"dará resultado; ''Aceptar'' inicia la búsqueda", "Cadena de búsqueda en el nombre del curso", "Transcripción de la música flamenca 2024/2025"
);
if (cadbusname.Length > 0) {
foreach (Course c in lr.Execute().Courses)
{
if (c.Name.Contains(cadbusname))
{
string cadbusnametarea = Interaction.InputBox("Cadena de búsqueda en el atributo ''name'' de la tarea. ''Cancelar''" +
"no dará resultado; ''Aceptar'' inicia la búsqueda", "Cadena de búsqueda en el nombre de la tarea", "Ejercicio 8.");
CoursesResource.CourseWorkResource.ListRequest cwrlr = new CoursesResource.CourseWorkResource.ListRequest(service, c.Id);

foreach (CourseWork cwr in cwrlr.Execute().CourseWork)
{
if (cwr.Title.Contains(cadbusnametarea))
{
string idCur = cwr.Id;
var cwrmat = cwr.Materials;

foreach (var item in cwrmat)
{
if (item.DriveFile != null)
{
string tx = "El archivo se ha subido desde Google Drive. El thumbonailurl es : " + item.DriveFile.DriveFile.ThumbnailUrl +
". El enlace alternativo es: " + item.DriveFile.DriveFile.AlternateLink + ".  El título es: " + item.DriveFile.DriveFile.Title;
}
if (item.Link != null)
{
string tx = "Se trata de un enlace. La url es " + item.Link.Url + ". El thumbonailurl es : " + item.Link.ThumbnailUrl +
". El título es: " + item.Link.Title;
}
}

CoursesResource.CourseWorkResource.AddOnAttachmentsResource.ListRequest ccarlr =                               new CourseWorkResource.AddOnAttachmentsResource.ListRequest(service, c.Id, idCur);
foreach (AddOnAttachment item in ccarlr.Execute().AddOnAttachments)
{
string nn = item.ItemId;
}
}
}
}
}
};
}
catch (Exception e)
{
string ff = e.Message;
}
}
}
В строке появляется ошибка:

Код: Выделить всё

 foreach (AddOnAttachment item in ccarlr.Execute().AddOnAttachments)
Буду признателен за любую помощь.
Цель – получить доступ к данным, относящимся к вложениям задач, которые Я сам создал для студентов.

Подробнее здесь: https://stackoverflow.com/questions/791 ... th-c-sharp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»