我刚刚开始使用D2L并且遇到了问题。
在“使用入门”页面上,我完成了前三个步骤:
1)从D2L获取应用程序密钥/ ID对 - 我已收到应用程序ID和应用程序密钥
2)在您的主机LMS中创建一个测试帐户 - 我创建了一个具有管理员角色的新用户帐户进行测试
3)选择要使用的客户端库 - 我正在使用PHP SDK
4)使用LMS进行身份验证 - 这是我遇到麻烦的地方。
当我使用“入门”示例时: http://samples.valence.desire2learn.com/samples/GettingStartedSample/
然后输入我的主机,应用程序ID和应用程序密钥并点击“验证”按钮,我收到“此应用程序未在此LMS实例上获得授权。请求管理员授权此应用程序”错误。
我是D2L主机的管理员,我不知道如何授权我自己的应用。
我尝试了以下内容:
我做错了什么?
答案 0 :(得分:0)
根据您的问题和评论,这里有两个问题:
首先,您的LMS定期从D2L KeyTool服务获取适合您的LMS的App ID /密钥对列表。这个提取的时间表是一天一次;因此,如果未设置计划任务,或者您的LMS未正确识别KeyTool服务,或者在授予下一个计划运行的密钥后尚未经过时间任务,该应用程序将不在您的LMS“管理可扩展性列表中。听起来你不再有这个问题了。
其次是Valence Learning Framework API的身份验证过程(请求和检索LMS用户的一组用户令牌)需要正确设置几个LMS功能:(a)LMS必须配置为支持深度链接,(b)必须设置LMS以处理传入客户端URL请求的?target=
参数,并在整个用户身份验证过程中策划该参数。
如果您的LMS没有进行用户身份验证但依赖于另一个第三方IDP(如Shibboleth),则必须由IDP正确处理传递到登录过程中的任何?target=
参数用户身份验证后返回LMS。在用户身份验证期间发生多次重定向的情况下,这可能涉及连续生成target
参数,并且每一代都必须完整地对先前的请求URL进行URL编码(例如将信封粘贴在另一个请求URL中)信封,在另一个信封内。)
如果您的LMS未正确配置为支持这两点(在其他操作期间您可能不会注意到这些点),则客户端对学习框架API的调用将无法工作,因为调用客户端将无法获取一组用户令牌。
要解决其中的第二个问题,您可能需要联系D2L's Customer Support desk - 他们可以验证并根据需要调整此身份验证链的LMS配置部分。如果您正在将LMS与未由D2L管理或部署的其他第三方IDP组件集成,那么您可能还需要调整其配置:D2L可能会建议在那里需要做什么(策划target
URls上的参数,但在这些情况下无法调整配置。