使用 Python 的 Pubnub 访问管理

Pubnub Access Management with Python

我正在尝试将 Pubnub 访问管理与 Python 结合使用,但我总是收到一条错误消息,指出 'Signature Does not Match'。我知道他们的文档说这意味着 Secret/Publish/Subscribe 键可能是错误的,但我已经三次检查它们是否正确。还检查了 Pubnub 开发人员控制台,它在那里工作正常。

这是我正在使用的方法:

def get_pubnub_token(request, connector_id):
    pubnub = Pubnub(settings.PUBKEY, settings.SUBKEY, secret_key=settings.PUB_SECRET_KEY)
    authkey = str(uuid.uuid4())
    result = pubnub.grant(channel=connector_id+"-pnpres", auth_key=authkey, read=True, write=True, ttl=60)
    if result['error']:
        return HttpResponse(status=result['status'])
    result = pubnub.grant(channel=connector_id, auth_key=authkey, read=True, write=True, ttl=60)
    if result['error']:
        return HttpResponse(status=result['status'])
    result = pubnub.grant(channel=connector_id+"-stream", auth_key=authkey, read=True, write=True, ttl=60)
    if result['error']:
        return HttpResponse(status=result['status'])
    jsonstr = get_json(authkey)
    return HttpResponse(jsonstr, content_type='application/json')

我想知道以前是否有人这样做过,他们是否可以给我任何提示,说明为什么我会看到此错误。

您使用的是哪个版本的 SDK?

此外,这也可能是因为您的系统时钟未设置为 NTP。您能否验证其设置为 NTP,然后重试?

如果问题仍然存在,请通过 support@pubnub.com 联系我们,我们很乐意帮助您追查问题。

杰瑞米

在 python 3.4.3 中使用 SDK 3.7.1 版时出现问题。 Pubnub 的开发人员在昨晚的某个时间解决了这些问题,并且似乎已经在他们的开发代码中解决了。我猜他们会在不久的将来某个时候将其放入生产代码中。