我正在使用Python(Django)构建一个应用程序,并尝试触发另一个应用程序接收的事件,由Pusher代理。
尝试触发事件时,我收到以下错误:
状态:400;消息:令牌已验证,但对应用无效
我用来测试连接和事件触发器的代码如下:
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应用程序和命令行脚本中都会发生这种情况,结果完全相同。
任何人都知道问题可能是什么?
答案 0 :(得分:1)
只是为别人详细说明。当我的circleci构建无法使用相同的值时,我发现了这个问题。
如果使用的是config.yml文件,则app_id被视为整数。由于某些原因,这会使推送程序身份验证机制感到困惑。您必须将ID括在引号中,例如:
docker:
image: ...
environment:
PUSHER_APP_ID: "12345"
与不正确版本相反:
docker:
image: ...
environment:
PUSHER_APP_ID: 12345
其他值不受此影响,因为它们包含字母,这些字母迫使YAML解析器将值视为字符串。