我正在努力在 HERE 插件中进行身份验证。我正在使用带有 Qt 5.9.1 Mingw 32bit 的 Windows 10,我的应用程序几乎都是用 C++ 编写的。我使用 QML 的唯一部分是关于地图。我想使用 HERE 插件,但我是 QtLocation 和插件的新手,我真的不明白我需要做什么才能在 HERE 中进行身份验证。我试图按照 HERE 网站上的指南进行操作,但我真的无法理解。
我从 qt 知道我必须用来在 HERE 上进行认证的代码如下:
Plugin {
name: "here"
PluginParameter { name: "here.app_id"; value: "myapp" }
PluginParameter { name: "here.token"; value: "abcdefg12345" }
}
所以我需要here.app_id和here.token。
我在 HERE 网站上创建了一个帐户,并使用 REST 创建了一个项目。所以现在我有了我的APP ID参数,但我真的不明白如何将TOKEN值放入第二行。首先,对于我的具体情况,我需要创建一个 api 密钥还是 OAuth 2.0?
我尝试使用 Postman 遵循此链接中所写的内容,最后我得到了一个非常长的令牌,我复制并放入了“here.token”参数,但是当我运行应用程序时,它给了我Invalid here.token和它不显示地图。
有人可以给我有关如何正确获取令牌值的任何提示吗?或者有人可以指点我一些链接吗?是否有其他方法可以使用 api 密钥而不是令牌进行登录?
- - - - - - - - 更新 - - - - - - - - - - - - - - - - - ------
过了一段时间,我不得不回到这个我从未解决过的问题上:现在的情况是我设法通过邮递员获得了令牌,但它总是无效的。现在我正在使用 Qt 5.15.2 和 MinGw 64 位。
我正在使用修改的 minimum_map 示例添加 here.app_id 和 here.token 参数。
main.qml
import QtQuick 2.15
import QtQuick.Window 2.15
import QtLocation 5.6
import QtPositioning 5.6
Window {
width: Qt.platform.os == "android" ? Screen.width : 512
height: Qt.platform.os == "android" ? Screen.height : 512
visible: true
Plugin {
id: mapPlugin
name: "here" // "mapboxgl", "esri", ...
// specify plugin parameters if necessary
parameters: [
PluginParameter {
name: "here.app_id"
value: "xxxxx"
},
PluginParameter {
name: "here.token"
value: "yyyyyy"
}]
}
Map {
anchors.fill: parent
plugin: mapPlugin
center: QtPositioning.coordinate(59.91, 10.75) // Oslo
zoomLevel: 14
}
}
问题是当我运行应用程序时,输出如下:
Invalid here.token
3 , "Qt Location requires app_id and token parameters.\nPlease register at https://developer.here.com/ to get your personal application credentials."
为了获得令牌,我做了以下事情:
- 我在 developer.here 网站上注册了一个免费增值计划并创建了一个项目。
- 我创建了一个 REST API 和一个 OAuth 2.0(JSON Web 令牌),如下所示(我保存了我在 3. 步骤中使用的 credentials.properties 文件):
- 我下载了 Postman,创建了一个帐户,然后按照这个问题的答案中的说明进行操作。我收到了这样的 json 格式的响应 :
- 我进入了我的 minimum_map 示例,并将在我发布的第一张图片中显示的 APP ID 值设置为 app_id(而不是“xxxxx”),并设置为 here.token(而不是“yyyyyy”)在来自邮差。
- 我试图清理项目,删除构建文件夹但没有任何改变,答案总是:
Invalid here.token
3 , "Qt Location requires app_id and token parameters.\nPlease register at https://developer.here.com/ to get your personal application credentials."
我缺少什么来获得在 Qt 中显示此处插件的令牌?