edX LTI module and Scorm Cloud

567 views
Skip to first unread message

maximilian...@utec.edu.uy

unread,
Jun 15, 2015, 3:54:05 PM6/15/15
to edx-...@googlegroups.com
Hi, I managed to successfully integrate Scorm via Scorm Cloud and the LTI module. But I am unable to see the scores/grades.

I follow this tutorial http://blog.jazkarta.com/2015/02/08/adding-scorm-packages-to-open-edx-via-scormcloud-and-lti/

Maybe someone just resolved this problem.

Thanks.




Nate Aune

unread,
Jun 18, 2015, 9:39:16 PM6/18/15
to edx-...@googlegroups.com
Hi Maximillian,

I am the author of that blog post, so I might be able to help you find out why the scores/grades aren't showing up. Do you see any error messages in the edX logs or SCORM Cloud logs which might shed some light on why scores aren't getting recorded?

Nate

Andrea Russo

unread,
Jun 19, 2015, 10:32:05 AM6/19/15
to edx-...@googlegroups.com
Hi Nate,

I have followed the tutorial (http://blog.jazkarta.com/2015/02/08/adding-scorm-packages-to-open-edx-via-scormcloud-and-lti/) and i've the same problem of Maximilan. I've followed the "caveats" at the end of the article. 
I've installed the edx-platform (LMS and Studio) at an internet-address, i've modified the file LTI_module.py as in the PR on github (https://github.com/jazkarta/edx-platform/commit/ebcf93002557176102df2bf93ab79a979aaf0fba). 
When the student does the SCORM quiz on SCORM Cloud, results don't appear on LMS. Do I make other changes into edx-platform? 

Thanks a lot,
Andrea 

Nate Aune

unread,
Jun 19, 2015, 12:32:51 PM6/19/15
to edx-...@googlegroups.com
You do have to set the quiz-related settings mentioned in the blog
post when creating the SCORM. For our customer, they were using Adobe
Captivate, and I have no idea how that works if it's coming from
something other than Captivate.

Another thing to check is to see if there is anything that would
prevent SCORM Cloud from being able to successfully call the URL to
report grades...firewall? basic auth? self-signed or poorly configured
SSL certificate?

Some troubleshooting that we did at the time was debugging where the
callback URL is produced that gets sent to SCORM Cloud, to make sure
that it makes sense, and watching the logs to confirm that SCORM Cloud
was actually calling it.
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "General Open edX discussion" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/edx-code/58dc43f1-e166-4db9-b3e3-eddc5eae0cba%40googlegroups.com.



--


na...@appsembler.com
+1 (617) 517-4953
http://twitter.com/natea | http://linkedin.com/in/natea

Andrea Russo

unread,
Jun 22, 2015, 4:59:31 AM6/22/15
to edx-...@googlegroups.com
Hi Nate,

I downloaded the quiz that you used in the tutorial (Picture_Perfect_Sample) and I followed the instruction about course's creation in Adobe Captivate 8. 
Then, I imported the course in SCORM Cloud and I've configured LTI in Open edx as in the tutorial but I've the score's problem too. 
In fact, I see the interaction between student and SCORM quiz in SCORM Cloud, but the score doesn't come back to Open Edx. 
My OpenedX devstack instance is installed with Vagrant in a server with a public IP address. 
I print the oauth parameter that my OpenedX instance sends to SCORM Cloud and I observe this:

OAUTH params {
'resource_link_id': u'localhost%3A8000-i4x-EDOCWork3_0-CS002-lti-eb740301e7304f95ae0d75cbb5b69dd3', 
'lis_person_contact_email_primary': 'ho...@example.com', 
'user_id': u'b922a2c53d2316a26cb3935aa7980648', 
'roles': u'Student',   
'oauth_nonce': u'44080113225197580631434955187', 
'oauth_timestamp': u'1434955187', 
'lis_result_sourcedid': 'EDOCWork3.0/CS002/2015_Q2:localhost%3A8000-i4x-EDOCWork3_0-CS002-lti-eb740301e7304f95ae0d75cbb5b69dd3:b922a2c53d2316a26cb3935aa7980648', 
'context_id': u'EDOCWork3.0/CS002/2015_Q2', u'oauth_consumer_key': 
'1beee48c-d575-4034-96a9-8dc7555047f2', 
'lti_version': 'LTI-1p0', 
'oauth_signature_method': u'HMAC-SHA1', 
'oauth_version': u'1.0', 
'launch_presentation_return_url': '', 
oauth_signature': u'sfdeyG2KrX+18QX+wA2tV2y46Ns=', 
'lis_person_sourcedid': u'honor', 
'lti_message_type': u'basic-lti-launch-request', 
'oauth_callback': u'about:blank'}

Do you observe wrong oauth parameters? 
I think that 'lis_outcome_service_url' is wrong, but i have no idea how to fix it. 

Thanks in advance,

Andrea

maximilian...@utec.edu.uy

unread,
Jun 22, 2015, 3:10:19 PM6/22/15
to edx-...@googlegroups.com
Thanks Nate!

I will try again capturing the logs and I publish here later.

Thanks Andrea Too, your post was helpful.

Andrea Russo

unread,
Jun 22, 2015, 3:36:05 PM6/22/15
to edx-...@googlegroups.com
Hi Maximilian,
if you solve the problem, notify me the solution.

Thanks in advance
Andrea

Andrea Russo

unread,
Jun 24, 2015, 1:06:46 PM6/24/15
to edx-...@googlegroups.com
Hi Nate,

I've done steps of your tutorial (http://blog.jazkarta.com/2015/02/08/adding-scorm-packages-to-open-edx-via-scormcloud-and-lti/) on OpenEdX Test Drive of Appsembler. Here i've the same problem, student takes quiz on SCORMCloud but score doesn't come back to openEdX. According to you, the problem is on SCORMCloud that doesn't send score? 
Please, help me.

Andrea
 

Il giorno venerdì 19 giugno 2015 03:39:16 UTC+2, Nate Aune ha scritto:

Sergio Carrozzo

unread,
Jun 26, 2015, 4:27:29 AM6/26/15
to edx-...@googlegroups.com
I have the same problem of Andrea and Maximilian.
If you have any suggest, let me know.

Nate Aune

unread,
Jun 26, 2015, 10:58:10 AM6/26/15
to edx-...@googlegroups.com, David Glick (Glick Software)
Sergio, Andrea and Maximilian - do you all have a valid SSL
certificate set up in your edX instance? I don't believe the SCORM
Cloud LTI -> edX reporting of grades will work properly unless SCORM
Cloud can talk to edX via https.

Nate
> https://groups.google.com/d/msgid/edx-code/443695b9-01a4-4d0d-b7c5-8704dfb3d216%40googlegroups.com.

Nate Aune

unread,
Jun 26, 2015, 10:59:28 AM6/26/15
to edx-...@googlegroups.com, David Glick (Glick Software)
See the instructions for setting up the SSL certificate in this separate thread:
https://groups.google.com/forum/#!msg/edx-code/XKzKE85pK8o/Zbc_UOvhbbQJ

Maximiliano Fernandez

unread,
Jun 29, 2015, 9:24:08 AM6/29/15
to edx-...@googlegroups.com
Thanks Nate,I will try this in the week and let you know.

Thanks Again.




El presente correo y cualquier posible archivo adjunto está dirigido únicamente al destinatario del mensaje y contiene información que puede ser confidencial. Si Ud. no es el destinatario correcto por favor notifique al remitente anexando este mensaje y elimine inmediatamente el correo electrónico y los posibles archivos adjuntos al mismo de su sistema. Está prohibida cualquier utilización, difusión o copia de este correo electrónico por cualquier persona o entidad que no sean las específicas destinatarias del mensaje. UTEC no acepta ninguna responsabilidad con respecto a cualquier comunicación que haya sido emitida incumpliendo nuestra Política de Seguridad de la Información y la Ley de Protección de Datos y Acción de Habeas Data Nº 18.331.

Antes de imprimir este mensaje, por favor, compruebe que sea necesario. Cuidar el Medio Ambiente es responsabilidad de todos.

This e-mail and any attachment is confidential and is intended solely for the addressee(s). If you are not intended recipient please inform the sender immediately, answering this e-mail and delete it as well as the attached files. Any use, circulation or copy of this e-mail by any person or entity that is not the specific addressee(s) is prohibited. UTEC is not responsible for any communication emitted without respecting our Information Security Policy and the Data Protection Act and Habeas Data Action No. 18.331.

Before printing this message, please check needed. Protecting the environment is everyone's responsibility.

Andrea Russo

unread,
Jul 3, 2015, 12:46:16 PM7/3/15
to edx-...@googlegroups.com, da...@glicksoftware.com
Dear Nate,

I've set up SSL certificate (release by StartSSL.com) in my Open EdX LMS instance with public domain. I've modified the code of the LTI module as you suggested on the blog (Caveats #2). But the grade doesn't come back from SCORMCloud to my OpenEdX instance. In log file there isn't information. Moreover I'm working on fullstack version, so I can't view many debug information. 
You wrote on the blog "basic auth must be disabled", how can i realize this on my instance?
Please help me.

Thanks in advance,
Andrea

Nate Aune

unread,
Jul 3, 2015, 2:35:00 PM7/3/15
to edx-...@googlegroups.com, David Glick (Glick Software)
Hi Andrea,

If you want to disable basic auth, you should add this line to your
server-vars.yml and re-run the update command:

COMMON_ENABLE_BASIC_AUTH: False

Then run:

/edx/bin/update edx-platform master

(replace 'master' with whatever branch you are using)

Let me know how it goes.

Nate
> https://groups.google.com/d/msgid/edx-code/75dd3de4-f895-4870-9377-67537b18a3b2%40googlegroups.com.
Message has been deleted

Andrea Russo

unread,
Jul 3, 2015, 4:35:39 PM7/3/15
to edx-...@googlegroups.com, da...@glicksoftware.com
Hi Nate,

I've modified /edx/app/edx_ansible/server-vars.yaml that appears as follows:

CERTS_DOWNLOAD_URL: http://192.168.33.10:18090
CERTS_VERIFY_URL: http://192.168.33.10:18090
EDXAPP_LMS_NGINX_PORT: '80'
EDXAPP_LMS_SSL_NGINX_PORT: '443'
EDX_ANSIBLE_DUMP_VARS: true
COMMON_ENABLE_BASIC_AUTH : false
NGINX_ENABLE_SSL: true
NGINX_SSL_CERTIFICATE: 'ssl-unified.crt'
NGINX_SSL_KEY: 'ssl.key'

I've launched /edx/bin/update edx-platform master but i have the following error:

TASK: [edxapp | checkout edx-platform repo into {{edxapp_code_dir}}] **********
failed: [localhost] => {"failed": true, "item": ""}
msg: Failed to download remote objects and refs

FATAL: all hosts have already failed -- aborting

PLAY RECAP ********************************************************************
           to retry, use: --limit @/home/vagrant/edxapp.retry

localhost                  : ok=6    changed=0    unreachable=0    failed=1

How can i fix it? 

Thanks a lot,
Andrea

Andrea Russo

unread,
Jul 5, 2015, 2:58:26 PM7/5/15
to edx-...@googlegroups.com, da...@glicksoftware.com
Dear Nate,

I understand that I have to modify /edx/app/edx_ansible/server_vars.yaml file.

In fact I've modified this file as follows:
EDXAPP_LMS_NGINX_PORT: '80'
EDX_ANSIBLE_DUMP_VARS: true
COMMON_ENABLE_BASIC_AUTH : false
NGINX_ENABLE_SSL: true
NGINX_SSL_CERTIFICATE: 'ssl-unified.crt'
NGINX_SSL_KEY: 'ssl.key'

After that, I've launched these commands 
1) /edx/bin/update configuration master 
2) /edx/bin/update edx-platform master
Unfortunately, servers (both Studio and LMS) don't work.

In /edx/var/log/supervisor/lms-stderr.log I find this error :
2015-07-05 14:46:52,356 ERROR 24543 [gunicorn.error] glogging.py:219 - Error handling request
Traceback (most recent call last):
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/gunicorn/workers/sync.py", line 126, in handle_request
    respiter = self.wsgi(environ, resp.start_response)
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 219, in __call__
    self.load_middleware()
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 51, in load_middleware
    mw_instance = mw_class()
  File "/edx/app/edxapp/edx-platform/common/djangoapps/django_locale/middleware.py", line 29, in __init__
    for url_pattern in get_resolver(None).url_patterns:
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 347, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 342, in urlconf_module
    self._urlconf_module = import_module(self.urlconf_name)
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/edx/app/edxapp/edx-platform/lms/urls.py", line 8, in <module>
    import auth_exchange.views
  File "/edx/app/edxapp/edx-platform/common/djangoapps/auth_exchange/views.py", line 22, in <module>
    from auth_exchange.forms import AccessTokenExchangeForm
  File "/edx/app/edxapp/edx-platform/common/djangoapps/auth_exchange/forms.py", line 15, in <module>
    from third_party_auth import pipeline
  File "/edx/app/edxapp/edx-platform/common/djangoapps/third_party_auth/pipeline.py", line 81, in <module>
    from . import provider
  File "/edx/app/edxapp/edx-platform/common/djangoapps/third_party_auth/provider.py", line 4, in <module>
    from .models import (
  File "/edx/app/edxapp/edx-platform/common/djangoapps/third_party_auth/models.py", line 16, in <module>
    from social.backends.saml import SAMLAuth, SAMLIdentityProvider
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/social/backends/saml.py", line 10, in <module>
    from onelogin.saml2.auth import OneLogin_Saml2_Auth
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/onelogin/saml2/auth.py", line 19, in <module>
    from onelogin.saml2.settings import OneLogin_Saml2_Settings
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/onelogin/saml2/settings.py", line 20, in <module>
    from onelogin.saml2.metadata import OneLogin_Saml2_Metadata
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/onelogin/saml2/metadata.py", line 17, in <module>
    from onelogin.saml2.utils import OneLogin_Saml2_Utils
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/onelogin/saml2/utils.py", line 32, in <module>
    from dm.xmlsec.binding.tmpl import EncData, Signature
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/dm/xmlsec/binding/tmpl.py", line 7, in <module>
    from dm.xmlsec.binding import DSigNs, dsig, EncNs, enc
ImportError: cannot import name DSigNs


According to you, where is the mistake?
Please help me.

Thanks in advance,
Andrea.

Andrea Russo

unread,
Jul 6, 2015, 9:45:58 AM7/6/15
to edx-...@googlegroups.com, da...@glicksoftware.com
Dear Nate,

I fixed the mistakes that I mentioned in previous posts. 

I wrote server-vars.yaml as follows :
EDXAPP_LMS_SSL_NGINX_PORT: '443'
EDXAPP_LMS_NGINX_PORT: '80'
EDX_ANSIBLE_DUMP_VARS: true
NGINX_ENABLE_SSL: true
NGINX_SSL_CERTIFICATE: 'ssl-unified.pem'
NGINX_SSL_KEY: 'ssl.key'
COMMON_ENABLE_BASIC_AUTH : false

I launched commands:
1)/edx/bin/update configuration master
2)/edx/bin/update edx-platform master

I've configured LTI unit as you described in your blog but the score doesn't come back. 
In /edx/var/log/supervisor/lms-stderr.log I'm reading this: 
INFO 17147 [edx.courseware] grades.py:143 - Signal fired when student grade is calculated. Receiver: <function listen_for_grade_calculation at 0x7045848>. Response: None

Can I fix it? Can you help me?

Thanks in advance,
Andrea

Andrea Russo

unread,
Jul 20, 2015, 6:14:57 AM7/20/15
to edx-...@googlegroups.com, da...@glicksoftware.com
Hi Nate,

I've installed my OpenEdX  fullstack instance with Vagrant on a server with public domain and public IP. I  configured Vagrant file with these combinations of port (port on server, port on GuestOS) : (8000,80) - (8001,18010) - (44300,443). After that I modified /edx/app/edx_ansible/server-vars.yaml as follows :

EDXAPP_LMS_NGINX_PORT: '80'
EDXAPP_LMS_SSL_NGINX_PORT: '443'
EDX_ANSIBLE_DUMP_VARS: true
COMMON_ENABLE_BASIC_AUTH : false
NGINX_ENABLE_SSL: true
NGINX_SSL_CERTIFICATE: '/etc/ssl/certs/ssl-unified.crt'
NGINX_SSL_KEY: '/etc/ssl/private/ssl.key'

After that I launched the update commands. Moreover I modified /edx/app/edxapp/edx-platform/common/lib/xmodule/xmodule/lti_module.py as you suggested in caveats #2 of your blog article.
Now when I launch the LTI exercise from edx LMS, I observe this parameter "bltioutcomesourceurl" that is the URL where SCORMCloud must send me XML message with grade. If I launch this URL from my browser, I reach my openedx instance. So I think that it could be a SCORMCloud problem that it doesn't send me nothing. 

Do you have the same problem with SCORMCloud? 

Please help me in order to solve this trouble.

Thanks in advance,
Andrea

Nate Aune

unread,
Jul 20, 2015, 8:32:52 AM7/20/15
to edx-...@googlegroups.com, da...@glicksoftware.com
What's the IP of your server? You wouldn't use Vagrant to deploy edX to a public server, only if you were developing locally.
To view this discussion on the web visit https://groups.google.com/d/msgid/edx-code/af833c12-1084-4ffd-b61b-3c0cb622114b%40googlegroups.com.

Andrea Russo

unread,
Jul 20, 2015, 9:15:51 AM7/20/15
to edx-...@googlegroups.com, da...@glicksoftware.com
Hi Nate,

I answer privately with my server's data. I see on github that there are three possible way to deploy edX to a public server (https://github.com/edx/configuration/wiki/edX-Full-Stack) and I choose the more convenient for my research goals and for my availabilities. 

Thanks in advance,
Andrea.

Andrea Russo

unread,
Jul 22, 2015, 12:58:42 PM7/22/15
to General Open edX discussion, da...@glicksoftware.com
Hi Nate,

can I ask you which service you are using for the SSL certificates in order to establish a right connectivity with SCORMCloud?

Thanks in advance,
Andrea
Reply all
Reply to author
Forward
0 new messages