android - 未经授权,安卓推送通知

标签 android api push-notification google-cloud-messaging sha1

我关注 this来自谷歌的指南,为安卓(GCM)设置推送通知服务。但实际上有点不对,因为没有Register app按钮,我认为它被替换为滑动条中的credentials,然后我按create new key 按钮,选择 Android 然后在 eclipse 中找到 SHA1 key (我尝试使用控制台,在/home/.android/debug.keystore 中,有奇怪的事情,它要求输入一些密码,我只是按回车键),然后我添加';com.google.android.gcm.demo.app' - 我在 list 中的应用程序包(它实际上是来自 http://developer.android.com/google/gcm/client.html 的工作示例)它工作得很好,当我输入我的发件人 ID(来自谷歌云控制台的项目编号)。

现在我要为此编写后端:

  1. 我执行请求并在我的服务器上获得“未授权”状态代码(我建议跳过细节,这实际上无关紧要)。
  2. 然后我试着 curl 它,因为它是在谷歌故障排除指南中写的:http://developer.android.com/google/gcm/http.html#auth_error . 我得到了带有 html 标签的响应,未经授权的 401。

我该如何解决这个问题?

注意:我想我生成 key 的方式是错误的,因为指南中的这种不匹配。

最佳答案

我找到了解决方案,我应该在滑动条中打开凭据 -> 创建新 key - SERVER(而不是 Android)然后不写任何 IP,这足以用于开发目的。然后这个 api key 将从服务器有效。

 api_key=YOUR_API_KEY

 curl --header "Authorization: key=$api_key" --header Content-Type:"application/json" https://android.googleapis.com/gcm/send  -d "{\"registration_ids\":[\"ABC\"]}"

响应:

{"multicast_id":6782339717028231855,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"InvalidRegistration"}]}

然后只需输入有效的注册 ID,如下所示: http://developer.android.com/google/gcm/http.html#auth_error

最好在这里更改 android 指南:http://developer.android.com/google/gcm/gs.html因为它不是最新的。

关于android - 未经授权,安卓推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21014935/

相关文章:

Android View 比较两个 View 是否相等

php - Twitter 个人资料链接或用户名(按个人资料图片网址)

c++ - 如何覆盖 Py_GetPrefix()、Py_GetPath()?

ios - 用于发行说明/更新的 App Store API

iOS推送通知自定义声音无法弄清楚

android - 谷歌移动视觉库11.8.0无法识别

android - 状态更改后我的变量重置

android - 无法使用 arrayadapter 禁用 ListView 中的单选按钮

push-notification - Xamarin.Forms Azure 推送通知 - "MobileServiceInvalidOperationException: You do not have permission to view this directory or page"

javascript - 网络推送通知未显示