Appcelerator/Titanium:获取Android凭据以推送通知

Appcelerator/Titanium:获取Android凭据以推送通知,android,push-notification,google-cloud-messaging,appcelerator,appcelerator-arrow,Android,Push Notification,Google Cloud Messaging,Appcelerator,Appcelerator Arrow,我希望能够发送推送通知使用钛安卓系统。但是,每当我尝试此操作时,都会出现后端错误,我认为这与无效凭据有关。我试着按照文件做,但它们似乎过时了 以下是我所做的: 我去了谷歌API管理器并启用了“谷歌云消息” 在Credentials>OAuth屏幕下,我添加了一封电子邮件、产品名称和URL 在Credentials>Create Credentials>OAuthClientID>Web应用程序下,我给它起了一个名字,并将一些URL放在经过授权的JavaScript源代码(如localhost)下

我希望能够发送推送通知使用钛安卓系统。但是,每当我尝试此操作时,都会出现后端错误,我认为这与无效凭据有关。我试着按照文件做,但它们似乎过时了

以下是我所做的:

  • 我去了谷歌API管理器并启用了“谷歌云消息”
  • 在Credentials>OAuth屏幕下,我添加了一封电子邮件、产品名称和URL
  • 在Credentials>Create Credentials>OAuthClientID>Web应用程序下,我给它起了一个名字,并将一些URL放在经过授权的JavaScript源代码(如localhost)下这是否需要一些特定的内容,因为文档中没有提及。
  • 然后谷歌给了我一个客户ID和一个客户秘密这是文档过期的地方

    • 客户端ID的格式为:
      
      123456789012-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.apps.googleusercontent.com
      
    • 客户机密的形式如下:
      
      XXXXXXXXXXXXXXXXXXXXXXXXX
      
  • 然后我导航到Appcelerator仪表板中的推送通知部分,并单击“Android云消息传递”。请注意,根据文档,我应该:

  • 在GCM API密钥字段中输入服务器密钥,在中输入GCM发送者ID GCM发送者ID字段

    然而,现在双方的领域都不同了。因此,我将以下内容从Google复制到Appcelerator:

    • 谷歌客户端对Appcelerator服务器密钥的保密
    • Google的客户端ID到Appcelerator的服务器ID
    /

  • 然后,我使用建议的
    CloudPush
    模块将我的Andriod设备订阅到一个频道(工作正常)

  • 然而,当涉及到从Appcelerator仪表板发送通知时,我的Android设备旁边会出现“失败”一词

  • 突出显示“?”图标时的完整错误消息如下:

    异常类型:GCM;错误代码:3103;错误消息: 注册ID为null或为空;捕获的异常:参数无法 无效

    我查了一下这个错误,它只说:

    GCM客户端提供了空或空的注册ID。此错误为 如果您使用的是Modules.CloudPush模块,则不常见

    这是没有帮助的

    我做错了什么?我想我把证件放错了,但不知道怎么放

    我使用的文档如下所示:

    谢谢

    更新

    经过多次建议,我通过“创建凭据”>“API密钥”创建了另一组凭据。这提供了一个新的密钥,格式为
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    。然后我使用:

    • Appcelerator服务器密钥的Google API密钥
    • Appcelerator服务器ID的谷歌项目编号(格式为
      123456789012
    但是,仍然会出现完全相同的错误

    更新2

    在阅读了另一个堆栈溢出答案()之后,我决定将该应用程序链接到Firebase。在Friebase仪表板上,我进入“Cog”>“项目设置”>“云消息”

    它向我显示了发送者ID(与项目编号完全相同)和不同的服务器密钥

    当我使用这些凭据时,在发送推送通知时会出现一个稍微不同的错误:

    异常类型:GCM;错误代码:3006;错误消息:发件人\u id 包含在注册\u id中的与用于 向GCM服务器注册


    当我这样做时,我创建了一个API密钥,而不是OAuth客户机ID。 与您的屏幕相同,但从“创建凭据”下拉列表中选择API密钥

    以下是我笔记中的一个片段:

    创建谷歌API项目

    第一步是创建一个GoogleAPI项目并启用其GCM服务。您还需要获得GCM发送者ID并创建Google API服务器密钥

    从此处创建/编辑项目:

    创建后,单击左上角的hamburger菜单,将鼠标悬停在API Manager上并选择Credentials

    在“凭据”选项卡上 单击创建凭据并选择API密钥

    复制并粘贴到箭头指示板中

    单击汉堡菜单-IAM和管理->设置
    复制项目编号-将其粘贴到Arrow dashboard中当我这样做时,我创建了一个API密钥,而不是OAuth客户端ID。 与您的屏幕相同,但从“创建凭据”下拉列表中选择API密钥

    以下是我笔记中的一个片段:

    创建谷歌API项目

    第一步是创建一个GoogleAPI项目并启用其GCM服务。您还需要获得GCM发送者ID并创建Google API服务器密钥

    从此处创建/编辑项目:

    创建后,单击左上角的hamburger菜单,将鼠标悬停在API Manager上并选择Credentials

    在“凭据”选项卡上 单击创建凭据并选择API密钥

    复制并粘贴到箭头指示板中

    单击汉堡菜单-IAM和管理->设置
    复制项目编号-将其粘贴到Arrow dashboard中

    我终于成功地实现了这一点。基本上,这些文件已经严重过时了

    我设法让它工作的方法是将应用程序链接到。 从那里我转到了“Cog/Settings”>“云消息传递”

    这将显示您的“发件人ID”(与您的项目编号相同)。对我来说,这是一个12位数的数字

    该页面还显示一个服务器密钥和一个旧服务器密钥。你用哪一个似乎无关紧要

    如果在推送通知时仍收到以下错误:

    异常类型:GCM;错误代码:3006;错误消息:发件人\u id 注册id中包含的内容不匹配