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'
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.
source share