¿Alguien puede confirmar si es posible enviar una tarea mediante programación a Blackboard utilizando Blackboard WebServices? (Como se documenta here). Específicamente, me gustaría saber la forma correcta de utilizar Gradebook.WS, AttemptVO y el método de envío de estudiantes para enviar una tarea. Esto es lo que he probado hasta ahora que en su mayoría trabaja en el intento de que se puede ver en Bb libro de calificaciones, excepto el attemptVO.studentSubmission no es visible en la pizarra del libro de calificaciones:¿Es posible enviar mediante programación una asignación a Blackboard utilizando Blackboard WebServices
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
Resultado:
(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]
Muchos Gracias.
¿Alguna actualización de esto? – skippr
No se esperan actualizaciones, ya que no es posible utilizar la API mencionada anteriormente. Nunca revisé los documentos para ver si se habían actualizado. – Sion