使用任务队列时出错

lin*_*ong 2 email google-app-engine task-queue

我有一个谷歌应用引擎.当我向任务队列添加任务以发送电子邮件时.我有这个错误:

请求失败,因为URL要求用户登录.对于在App Engine中调用的请求(诸如任务队列之类的离线请求,或者像XMPP和传入邮件之类的webhook),URL必须要求管理员登录(或不登录).

我的命令是

taskqueue.add(url ='/ mypage/operation/task',params = {'key':operation.key()}

请帮我修理一下.

谢谢.

Dre*_*ars 6

这特别指的是您app.yaml匹配任务工作者URL的处理程序.它可以指定无登录要求login: admin,但不能login: required.

这是一项完整性检查,可确保您了解任务运行的上下文.允许任务绕过装饰的处理程序login: admin,但是当它们运行时,它们将不具有上下文中的任何用户.users.get_current_user()并且users.is_current_user_admin()不会在任务执行的上下文中工作,因此将任务放在login: required处理程序后面没有意义.