2

私はグーグルアプリエンジンを持っています。メールを送信するためにタスクキューにタスクを追加すると。このエラーがあります:

URLにはユーザーログインが必要なため、リクエストは失敗しました。App Engine内で呼び出されるリクエスト(タスクキューなどのオフラインリクエスト、またはXMPPや受信メールなどのWebhook)の場合、URLには管理者ログイン(またはログインなし)が必要です。

私の命令は

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

私がそれを修正するのを手伝ってください。

ありがとう。

4

2 に答える 2

7

これは具体的にはapp.yaml、タスク ワーカーの URL に一致するハンドラを示します。ログイン要件を指定できない、または を指定できますが、 は指定できlogin: adminませんlogin: required

これは、タスクが実行されるコンテキストを確実に理解するためのサニティ チェックです。タスクは で装飾されたハンドラーをバイパスすることが許可されていますが、タスクがlogin: admin実行されると、コンテキストにユーザーが存在しません。users.get_current_user()タスク実行のコンテキスト内では機能しないためusers.is_current_user_admin()、タスクをハンドラーの背後に置くlogin: requiredことは意味がありません。

于 2011-05-09T12:43:18.713 に答える
1

URL の設定を確認せずに言うのは難しいですが、/mypage/operation/task を呼び出すにはユーザーがログインする必要があるようですが、タスク キューに送信されるものは、ユーザーがログインしていなくてもバックグラウンドで呼び出されます。の。

その URL からログイン要件を削除するか、管理者が必要とする URL にします。

于 2011-05-09T03:14:09.533 に答える