我正在尝试实现支持 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
总是错误的。
最佳答案
由于您还没有真正从日志中提供具体的错误消息,我将在此处发布快速故障排除。当我遇到问题时,我自己使用它。
- 服务器IP
服务器 IP:您已在控制台中正确设置了第 3 方服务器的 IP。这是您配置 API key 的地方,所以我敢打赌这没问题。
- 白名单
当你想在 xmpp 上试用你的项目时,你必须将它列入白名单,从谷歌阅读开发者文档时,这不是很清楚。有关更多解释,请参阅此问题:Google CCS (GCM) - project not whitelisted .加入白名单的链接:https://services.google.com/fb/forms/gcm/
- HTTP
如果上述也没有授予结果,您可能想使用 HTTP json 消息检查是否一切正常,您的项目不必列入白名单。由于这种方法已经存在了一段时间,所以有一些像这样的工作库:https://bitbucket.org/sardarnl/gcm-client
关于android - 无法向 GCM CCS 服务器进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25839539/