Is it possible to programmatically submit a task to Blackboard using Blackboard WebServices

Can anyone confirm if it is possible to programmatically submit a task to Blackboard using Blackboard WebServices? (As described here ). In particular, I would like to know the correct way to use the Gradebook.WS, AttemptVO and studentSubmission methods to submit a job. Here is what I have tried so far, which basically works in that the attempt can be seen in the Bb Gradebook, except that the VO.studentSubmission attempt is not visible in the Blackboard Gradebook:

from suds.client import Client from suds.plugin import MessagePlugin from suds.wsse import Timestamp, UsernameToken, Security WS_BASE_URL = 'http://bbdev.bangor.ac.uk/webapps/ws/services/' class Learn9Plugin(MessagePlugin): def marshalled(self, context): password = context.envelope.childAtPath('Header/Security/UsernameToken/Password') password.set('Type', 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText') security = Security() security.tokens.append(Timestamp()) security.tokens.append(UsernameToken('session', 'nosession')) plugin = Learn9Plugin() context = Client( WS_BASE_URL + 'Context.WS?wsdl', location = WS_BASE_URL + 'Context.WS', autoblend = True, wsse = security, plugins = [plugin]) context.options.wsse.tokens[1].password = context.service.initialize() result = context.service.loginTool('xxxxx', 'xxxx', 'xxxxx', '', 500) course_id = '_15877_1' gradebook = Client(WS_BASE_URL + 'Gradebook.WS?wsdl', location=WS_BASE_URL + 'Gradebook.WS', autoblend=True, wsse=security, plugins=[plugin]) attemptVO = gradebook.factory.create('ns0:AttemptVO') attemptVO.override = False attemptVO.publicFeedbackToUser = False attemptVO.score = 0 attemptVO.gradeId = '_169_1' # Smith attemptVO.studentSubmission = 'Some sample text representing an assignment' attemptVO.studentSubmissionTextType = 'PLAIN_TEXT' print attemptVO attempt_result = gradebook.service.saveAttempts(course_id, [attemptVO,]) print attempt_result 

Result:

 (AttemptVO){ attemptDate = None creationDate = None displayGrade = None exempt = None expansionData[] = <empty> feedbackToUser = None grade = None gradeId = "_169_1" groupAttemptId = None id = None instructorNotes = None override = False publicFeedbackToUser = False score = 0 status = None studentComments = None studentSubmission = "Some sample text representing an assignment" studentSubmissionTextType = "PLAIN_TEXT" } [_586_1] 

Many thanks.

+6
source share
1 answer

One of the Blackboard developers came back to me and said that it is impossible to transfer the task using webservice, because the methods "studentSubmission" and "setStudentSubmissionTextType" are readonly attributes.

A request to update documentation has been added to Blackboard.

+4
source

Source: https://habr.com/ru/post/920341/


All Articles