Mobilefirst 8.0 推送通知 API - 推送设备注册 (POST)
Posted
技术标签:
【中文标题】Mobilefirst 8.0 推送通知 API - 推送设备注册 (POST)【英文标题】:Mobilefirst 8.0 push notification API - Push Device Registration (POST) 【发布时间】:2018-02-21 09:12:02 【问题描述】:我指的是有关用于推送设备注册 (POST) 的 MobileFirst Server 推送服务 REST API 的文档。从文档(https://www.ibm.com/support/knowledgecenter/SSHS8R_8.0.0/com.ibm.worklight.apiref.doc/rest_runtime/r_restapi_push_device_registration_post.html)来看,payload 是这样的
"deviceId" : "12345-6789",
"phoneNumber" : "123456789",
"platform" : "A",
"token" : "xyz",
我可以看到令牌的描述是“通过服务提供商获得的设备令牌”,但我仍然不明白我应该从哪里获取此令牌。
我需要调用其他 api 来获取这个“令牌”吗?如果是这样,API 是什么?如果没有,那我应该从哪里得到这个?
【问题讨论】:
【参考方案1】:设备令牌由 GCM、APNS 等推送通知云提供商提供。 当应用安装在移动设备上时,推送 sdk 会与推送通知云提供商(Gcm、apns)通信并接收令牌。
当设备注册到 mobilefirst 服务器时,这个令牌会被发送到 mobilefirst 服务器并存储在数据库中。
所以没有其他api可以用来获取这个token
【讨论】:
我正在考虑通过适配器调用这个推送注册api。有没有关于我如何做到这一点或如何获得令牌的文档? 设备接收到令牌。如果您希望从适配器调用注册 API,您需要在设备(本机)获取令牌,并将其传递给适配器。但是您无法直接从适配器调用推送端点。这是因为,推送端点受到保护并且需要具有适当的 OAuth 令牌。否则,您将需要在客户端单独获取 Push OAuth 令牌并将其传递给服务器。如果你已经在做,不妨也使用 Push SDK 进行注册。【参考方案2】:获取访问令牌
要获取访问令牌,机密客户端会发送一个具有“client_credentials”授权类型的访问令牌请求,如 OAuth 规范中所述。令牌请求是发送到令牌端点 URL 的 HTTP POST 请求。访问令牌端点的 URL 模式如下(将 <...> 占位符替换为您的自定义数据):
http(s)://<server_ip>:<server_port>/<project_name>/api/az/v1/token
在请求中,包含 HTTP 授权标头。授权服务器使用此标头对机密客户端进行身份验证。
更多详情见:https://www.ibm.com/support/knowledgecenter/en/SSHS8R_8.0.0/com.ibm.worklight.dev.doc/dev/c_non_mobile_to_mobile_services.html
【讨论】:
您在回答中提到的“令牌”用于移动优先 REST API 调用的授权:承载标头。这不是我所指的令牌。我需要的是推送通知注册的请求正文。以上是关于Mobilefirst 8.0 推送通知 API - 推送设备注册 (POST)的主要内容,如果未能解决你的问题,请参考以下文章
IBM mobileFirst 8.0 中带有图像的促销推送通知
Mobilefirst 8.0 错误 IOS 推送通知。无法加载 netty_tcnative_aix_ppc_64、netty_tcnative_ppc_64、netty_tcnative
是否可以启用使用 MobileFirst SDK7.1 开发的推送通知可以运行 MobileFirst Server V8.0?
Mobilefirst 7.1 推送通知 - 发送消息 REST API 与 submitNotification(userId, notificationText)
IBM MObile First 中的推送通知:哪个更适合发送推送通知、MobileFirst Operations Console 或通过 REST API