我有一个谷歌应用引擎。当我将任务添加到任务队列以发送电子邮件时。我有这个错误:
请求失败,因为 URL 需要用户登录。对于在 App Engine 中调用的请求(任务队列等离线请求,或 XMPP 和传入邮件等 webhook),URL 必须要求管理员登录(或无需登录)。
我的命令是
taskqueue.add(url='/mypage/operation/task', params={'key': operation.key()}
请帮我修复它。
谢谢。
我有一个谷歌应用引擎。当我将任务添加到任务队列以发送电子邮件时。我有这个错误:
请求失败,因为 URL 需要用户登录。对于在 App Engine 中调用的请求(任务队列等离线请求,或 XMPP 和传入邮件等 webhook),URL 必须要求管理员登录(或无需登录)。
我的命令是
taskqueue.add(url='/mypage/operation/task', params={'key': operation.key()}
请帮我修复它。
谢谢。
这特别是指您中的哪个处理程序app.yaml
与任务工作人员 URL 匹配。它可以指定无登录要求或login: admin
,但不能login: required
。
这是一项健全性检查,可确保您了解任务运行的上下文。允许任务绕过用 装饰的处理程序login: admin
,但是当它们运行时,它们将没有任何用户在上下文中。users.get_current_user()
并且users.is_current_user_admin()
不会在任务执行的上下文中工作,因此将任务放在login: required
处理程序后面没有意义。
没有看到你的 url 设置很难说,但似乎 /mypage/operation/task 需要用户登录才能调用它,但是发送到任务队列的东西将在没有用户登录的情况下在幕后调用在。
从该 url 中删除登录要求,或使其成为管理员所需的 url