我正在尝试实施支持GCM的Android应用程序,但我无法通过第三方服务器对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
始终为false。
答案 0 :(得分:1)
由于您还没有真正从日志中提供特定的错误消息,因此我将在此处发布快速故障排除。当我遇到问题时,我自己使用它。
服务器IP:您已在控制台中正确设置第三方服务器的IP。这是你配置API密钥的地方,所以我打赌这没关系。
当你想通过xmpp试用你的项目时,你必须将它列入白名单,从谷歌阅读开发人员文档时这并不是那么清楚。有关更多说明,请参阅此问题:Google CCS (GCM) - project not whitelisted。要列入白名单的链接:https://services.google.com/fb/forms/gcm/
如果上述内容也未授予结果,您可能需要查看是否所有内容都使用HTTP json消息正常工作,您的项目不必列入白名单。由于这种方法已经存在了一段时间,因此有一些像这样的工作库:https://bitbucket.org/sardarnl/gcm-client