状态:400;消息:令牌已验证,但对应用<app_id>无效
我正在用Python(Django)开发一个应用程序,想要触发一个事件,让另一个应用程序接收到,这个过程是通过Pusher来实现的。
但是在尝试触发事件时,我遇到了以下错误:
状态:400;消息:令牌已验证,但对应用程序<app_id>无效
我用来测试连接和触发事件的代码如下:
import pusher
p = pusher.Pusher(app_id=settings.PUSHER_APP_ID, key=settings.PUSHER_API_KEY, secret=settings.PUSHER_SECRET)
p['a_channel'].trigger('an_event', {'some': 'data'})
我已经确认我传给Pusher构造函数的所有凭证参数都是正确的,甚至直接在调用中使用了这些参数,但还是没有成功。
这个问题在Django应用程序和命令行脚本中都出现,结果完全一样。
有没有人知道可能是什么问题呢?
1 个回答
2
为了让其他人更明白,我想多说几句。我在我的circleci构建出现问题时找到了这个问题,使用的值都是一样的。
如果你使用的是config.yml文件,app_id会被当作一个整数来处理。出于某种原因,这会让pusher的认证机制感到困惑。你需要把你的id用引号包起来,比如:
docker:
image: ...
environment:
PUSHER_APP_ID: "12345"
而不是下面这个错误的版本:
docker:
image: ...
environment:
PUSHER_APP_ID: 12345
其他的值就没有这个问题,因为它们包含字母,这样YAML解析器就会把这些值当作字符串来处理。