点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好
我目前正在尝试通过试用帐户上的getData()方法将iotmms连接到SAP UI5应用程序模板。 我只是一个学生,所以如果这个问题不重要,我深表歉意。 我使用此博客文章作为参考: https://blogs.sap.com/2016/04/10/communicate-with-iot-in-your-webide-project /
问题是IOT.js getData()方法在我的UI5应用程序中始终返回401 http授权错误。 但是,使用IOT.js getDevices()的iotrdms部分工作正常(因为已正确设置了目标)。
当我用列表中的选定设备触发getData()方法时,它返回的内容是:
以下是WebIDE中触发此方法的代码:
这是我的neo-app.json文件(与博客文章中的设置完全一样):
这是我的hcp目的地。 有人建议,iootmms还需要在其URL末尾包含/http,但是它只会返回http 404而不是401。
我相信这是四个问题之一:
- iotmms hcp目标设置不正确。
- 我的neo-app.json文件目标不正确,或者有一种新的设置方法。
- 与getData()通信时,授权标头信息不正确。 我什至不确定getData()方法是否需要标题信息。 在任何使用它的地方都找不到示例。
- 我尝试从中获取的网址不正确。
奇怪的是,无论有没有授权,pushData()方法(我认为使用的是mms url)都可以正常工作。
我还更新了消息管理服务,并重新注入了IOT.js文件,但似乎都没有修复它。 有人还建议关闭hcp iotmms目标上的授权,但这也不起作用。
如果有人能指出正确的解决方法,我将非常感激。 如果您需要其他任何信息来解决此问题,请告诉我。
谢谢
Garrett
401errors.jpg (31.8 kB)
关于iotmms目标和nea-app.json,如果目标中包含" http",则在neo-app.json中不需要" entryPath":"/img/http"。 否则,如果neo-app.json中具有" entryPath":"/img/http",则在iotmms目标位置中不需要" http"。
,错误代码401表示未授权:由于凭据无效,访问被拒绝。 由于您可能会收到此错误,因此好像您的目的地一样,neo-app.json和GET URL都是正确的。
所以我怀疑您的OAuth令牌有问题。 请确保您正确生成了令牌,并确保还配置了物联网服务。
请参阅
我在使用" postData"时遇到了同样的问题。 正如我在屏幕快照中看到的那样,您已使用" BasicAuthentication"定义了" iotmms"目的地(并在此肯定输入了HCP凭据)。 我做了同样的事情,但没有成功。 解决方案是将其更改为" NoAuthentication"。 否则,不会将您在JS代码中创建的带有设备令牌的"授权"标头传递给MMS,而是传递给您的HCP凭证。
似乎MMS的某些功能需要设备令牌作为身份验证(如" postData"和" getData"),而某些则需要HCP凭据(如" pushData"),因为如果您打开新的浏览器会话并输入
在浏览器地址栏中,您会看到身份验证弹出窗口,可在其中输入HCP用户名/密码,但如果输入
由于缺少带有设备令牌的Authorization标头,您直接获得"未授权对请求资源的访问(HTTP 401)"。
解决了吗? p>