首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用QML发送OneSignal通知

用QML发送OneSignal通知
EN

Stack Overflow用户
提问于 2019-05-09 19:53:34
回答 1查看 324关注 0票数 2

我正在将OneSignal集成到用Felgo构建的应用程序中,在为测试目的构建应用程序时,我能够从Felgo仪表板手动发送通知,但很明显,当应用程序中发生事件时,我希望这些通知是自动的。

我真的很难理解如何做到这一点,我读过这两篇文章:

我想把这些结合在一起,我会怎么做呢?与…有关的东西:

代码语言:javascript
复制
AppButton {
    id: button
    onClicked: {
        //other onClicked actions,
        HttpRequest
        .post("https://onesignal.com/api/v1/notifications")
        .set('Content-Type', 'application/json')
        .send({ title: "post title", body: "post body" })
        .then(function(res) {
            console.log(res.status);
            console.log(JSON.stringify(res.header, null, 4));
            console.log(JSON.stringify(res.body, null, 4));
        })
        .catch(function(err) {
            console.log(err.message)
            console.log(err.response)
        });
    }
}

但我到底该如何向特定的tags发送有针对性的通知?

在上面的Felgo OneSignal链接中,它们显示了我可以用以下方式使用curl测试推送通知:

代码语言:javascript
复制
curl --include \
    --request POST \
    --header "Content-Type: application/json" \
    --header "Authorization: Basic <ONESIGNAL-REST-API-KEY>" \
    --data-binary '{
     "app_id": "<ONESIGNAL-APP-ID>",
     "contents": { "en": "Message" },
     "tags": [{"key": "userId", "relation": "=", "value": "1"}]
    }' \
    https://onesignal.com/api/v1/notifications

但是除了测试目的之外,我如何分配特定的标记,并在应用程序中按下按钮(或其他事件)触发通知呢?

我知道实现通知所需的所有信息都在那里,但我无法理解它!

任何帮助都会受到极大的感谢,因为即使在阅读文档时,我也在苦苦挣扎。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-15 13:07:20

我使用下面的代码完成了这个工作,所显示的是在我的应用程序的其他地方按下AppButton时发送的信号的最终结果。

我没有自己的web服务来承载我的通知,但出于安全考虑,我的REST密钥不应该在我的代码中。

为了解决这个问题,我将我的一个信号Rest键添加到了我的firebase数据库中的一个分支(我也在我的应用程序中使用),该分支只能被授权用户访问,然后在请求发出的实例上下载,然后更改为另一个字符串。

代码语言:javascript
复制
property var osKey

firebaseDb.getValue("keys/OSkey", {
                         }, function(success, key, value) {
                             if(success){
                             osKey = value;
                             HttpRequest
                               .post("https://onesignal.com/api/v1/notifications")
                               .set('Content-Type', 'application/json')
                               .set("Authorization", "Basic " + osKey)
                               .send({
                                   "app_id": "<MY_APP_ID>",
                                   "contents": { "en": "MESSAGE" },
                                   "tags":  [
                                   // the specific tags I want to send too
                                       {"key": "groupAdmin", "relation": "=", "value": "1"},
                                       {"key": "group", "relation": "=", "value": groupName}
                                   ]
                               })
                               .then(function(res) {
                                  console.log(res.status);
                                  console.log(JSON.stringify(res.header, null, 4));
                                  console.log(JSON.stringify(res.body, null, 4));
                               })
                               .catch(function(err) {
                                  console.log(err.message)
                                  console.log(err.response)
                               });
                            }
                         })
            osKey = "Nothing to see here"

我明白,为了安全起见,这可能仍然不是最安全的,如果有人能告诉我如何改进这一点,这将是一个巨大的帮助!

谢谢

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56066663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档