2017-05-10 6 views
0

Ich versuche, Google-Klassenzimmer mithilfe von App Script aus einer Tabelle zu erstellen. Ich kann die Klassen erfolgreich erstellen, aber es werden keine Kursmaterialien (1 Dokument) zur About-Seite hinzugefügt.Erstellen von Klassenzimmern mithilfe des App-Skripts

Dies ist der Code, den ich benutze, und ich habe versucht, die API reference ohne Erfolg zu verwenden.

Kann mir bitte jemand raten, wie man die courseMaterialSets richtig formatiert, um ein Google Doc von meinem Laufwerk einzubinden.

var create = Classroom.Courses.create({ 
"ownerId": '-My email address-', 
    "name": getData[i][0], 
    "section": getData[i][1], 
    "descriptionHeading": getData[i][2], 
    "description": getData[i][2], 
    "courseMaterialSets" : [{ 
      "title" : 'Course Outline', 
      "materials" : [{ 
        "driveFile" : { 
          "id" : getData[i][5], 
          "title" : 'Course Outline' , 
          "alternateLink": getData[i][4], 
          "thumbnailUrl" : 'https://drive.google.com/uc?export=download&id=-Image ID-', 

        }, 
       } 
      ] 
     } 
    ] 
}) 
} 
Logger.log(create) 
} 

Vielen Dank.

EDIT

Ich habe den Code aktualisiert, um die Vorschläge in den Kommentaren zu reflektieren und den Wert von var create angemeldet, die alle Infos des neu erstellten Klassenzimmer zurück, aber ohne Erwähnung des Kursmaterials Set .

+0

Klassenzimmer.Kurse.create ({ "ownerId": '------ @ -----------', "Name": getData [i] [0], "Abschnitt": getData [i ] [1], "descriptionHeading": getData [i] [2], "description": getData [i] [2], "courseMaterialSets": [{ \t \t \t "title": string, " Materialien“: [{ "driveFile": { { \t \t \t \t \t \t "id": string, \t \t \t \t \t \t "title": string, \t \t \t \t \t \t "alternateLink": string, \t \t \t \t \t \t "thumbnailUrl": string, \t \t \t \t \t \t} }, } ] } ] }); } } –

+0

Dies ist, was ich aus der [Classroom Dokumentation] (https://developers.google.com/classroom/reference/rest/v1/courses#Course) verstehe. Sorry für doppelten Kommentar, nicht genug Platz. –

+0

Haben Sie den obigen Code getestet? Ich habe erneut versucht, das Format ohne Erfolg zu verwenden. Erzeugt die Klasse ok, aber keine Klassenmaterialien. –

Antwort

1

According to the documentation müssen Sie specify the DriveFile object mit JSON.

Sie können natürlich alle diese Daten aus einem Blatt ziehen oder Variablen verwenden, um Ressourcen zu durchlaufen.

+0

Vielen Dank für die Antwort, ich habe es erneut versucht, das Format ohne Erfolg zu verwenden. Erzeugt die Klasse ok, aber keine Klassenmaterialien. –

+0

Erfassen und protokollieren Sie Fehler, wenn Sie das Programm ausführen? Ohne weitere Informationen ist es schwierig festzustellen, wo das Problem liegt. – Brian

+0

Bitte sehen Sie meine Bearbeitung. Ich bekomme keine Fehler, wenn ich das Programm starte. Es vervollständigt und erstellt das Klassenzimmer erfolgreich, fügt jedoch keine Kursmaterialien zur About-Seite hinzu. –

0

Hier ist der Code Ich habe versucht, erfolgreich einen Kurs zu erstellen, aber ich auch nicht erhalten Sie die Kursmaterialien zum Anhängen an den Tab ABOUT des Google Classroom erstellt.

function createCourse() { 
    var resource = { 
    name: "XYZ course", 
    room: "The Great Hall", 
    ownerId: "me", 
    courseMaterialSets: [{ 
     title: "course materials", 
     materials: [ 
     { 

     driveFile: { 
      id: "insert id of google drive file" 

     } 


     } 
     ], 
    }], 
    } 
    var newCourse = Classroom.Courses.create(resource); 


} 

Ich habe auch versucht, den Kurs zu erstellen und dann den Kurs in Google Classroom und den Versuch, den Klassenraum hinzuzufügen. Dies war auch nicht erfolgreich.

function addClassSet() { 
    var id = "course id obtained with sample script in documentation"; 
    var resource = { 
    name: "XYZ course", 
    room: "The Great Hall", 
    courseMaterialSets: [{ 
     title: "course materials", 
     materials: [ 
     { 

     driveFile: { 
      id: "drive file id" //drive file was not added 

     } 


     } 
     ], 
    }], 
    description: "This is a trial course", //this worked 
    } 
    Classroom.Courses.update(resource, id); 
} 

Ist es, weil die documentation states, dass die courseMaterialsSets nur lesen ???

+0

Was Brian oben gesagt hat, ist richtig, glaube ich. Es genügt nicht, nur die ID-Paramet zu liefern, sondern Sie müssen alle Parameter im JSON-Objekt angeben (ich habe es nicht getestet). Dieser Teil der Dokumentation bezieht sich auf ein Ressourcenobjekt, d. H. Das Abrufen von Informationen aus einer existierenden Klasse, weshalb es "schreibgeschützt" heißt. –

Verwandte Themen