android - 无法向 GCM CCS 服务器进行身份验证

标签 android python xmpp google-cloud-messaging

我正在尝试实现支持 GCM 的 Android 应用程序,但我无法从我的第 3 方服务器向 CCS 服务器进行身份验证。

import sleekxmpp as xmpp

SERVER = 'gcm.googleapis.com'
PORT = 5235
USERNAME = 'my-project-number'
PASSWORD = 'my-api-key'


def main():
    client = xmpp.ClientXMPP(USERNAME + '@' + SERVER, PASSWORD)
    if client.connect(address=(SERVER, PORT), use_ssl=True):
        print('Connection established.')
        print('Authenticated =', client.authenticated)
    else:
        print('Connection failed.')


if __name__ == "__main__":
    main()

输出:

Connection established.
Authenticated = False

Process finished with exit code 0

当我知道我拥有的凭证与 Google Developer Console 项目页面上的凭证相同时,我不确定为什么 client.authenticated 总是错误的。

最佳答案

由于您还没有真正从日志中提供具体的错误消息,我将在此处发布快速故障排除。当我遇到问题时,我自己使用它。

  1. 服务器IP

服务器 IP:您已在控制台中正确设置了第 3 方服务器的 IP。这是您配置 API key 的地方,所以我敢打赌这没问题。

  1. 白名单

当你想在 xmpp 上试用你的项目时,你必须将它列入白名单,从谷歌阅读开发者文档时,这不是很清楚。有关更多解释,请参阅此问题:Google CCS (GCM) - project not whitelisted .加入白名单的链接:https://services.google.com/fb/forms/gcm/

  1. HTTP

如果上述也没有授予结果,您可能想使用 HTTP json 消息检查是否一切正常,您的项目不必列入白名单。由于这种方法已经存在了一段时间,所以有一些像这样的工作库:https://bitbucket.org/sardarnl/gcm-client

关于android - 无法向 GCM CCS 服务器进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25839539/

相关文章:

java - 如何在java中连接到gtalk?

java - 无法从另一个 Activity 更新 TextView

android - 如何在 Android 中从一种布局切换到另一种布局

java - 在 Java 中通过多个请求终止线程?

android - 按钮点击状态限制 - Android

python - 用另一个/相同数据帧的值替换 pandas 数据帧中值为 'NaN' 的单元格值

c# - 使用 Jabber-Net 连接到 Openfire 服务器时绑定(bind)资源时出错

python - 这是一个系列还是数据框?

python - 在 K8s pod 中运行的 Logstash 容器的 http 插件应使用什么主机和端口?

php - 如何通过 JAXL 发送 Facebook 聊天消息?