4

この投稿は、GAE cron ジョブで OAuth が必要な操作を行うには?のフォローアップです。@oauth_requiredのデコレータを誤用していることに気付きましたOAuth2DecoratorFromClientSecrets

OAuth 2.0 説明プレゼンテーションで説明されているように、Oauth 2.0 は次の問題を解決します。

  • サービスの構築...
  • ...ユーザーがアクセス...
  • ...そしてサードパーティからユーザーのデータにアクセスします

それが@oauth_required要約であり、うまく機能します(現在、私のアプリは「機能」しています。更新ページをトリガーすると、アプリへのYouTubeデータへのアクセスを許可するように求められ、残りは続きます)。しかし、それは私が望むものではありません! 私のアプリは、ユーザー入力なしで資格情報を使用して毎日 youtube プレイリストを作成する、より簡単なことを行います。上記の 3 層ネゴシエーションと比較すると、次のようになります。

  • サービス_
  • ...ユーザーがアクセス
  • ...ただし、「サーバー所有」の YouTube プレイリスト データにのみアクセスします。ユーザーの YouTube データにアクセスしたくありません。私 (つまり、私 / サーバーによって永続化されたユーザー ID) が所有するプレイリストを変更したいだけです。

しかし、それを行うにはまだ助けが必要です。ここに私の現在の状態があります:

  1. 数回検索した後、私がやりたいことはOffline Accessと呼ばれることを知りました(私のユースケースを強調して
    ください)。この例には、月曜日の午前 8 時ちょうどにブロガーの投稿を作成するバックアップ サービスやアプリケーションが含まれます . このスタイルのアクセスはオフラインと呼ばれ、Web サーバー アプリケーションはユーザーにオフライン アクセスを要求する場合があります. 通常の既定のアクセス スタイルはオンラインと呼ばれます. " ...
    →だから私は今していることを続け、YouTube アカウントへのアクセスを要求し続けますが、type_access=offlineフラグを使用してトークンを取得し、それを保持/後続の要求に使用する必要があります。

  2. オフライン アクセス更新トークンの使用セクションは完全に理にかなっていますが、一般的な HTTP レベルにとどまります。まだ初心者なので、これらの原則を自分の Python コードに統合する方法がわかりません。また、サンプルの Python コードも見つかりません
    でした... → Python の例を 1 つ、どこでどのように使用するかを説明してくれる人はいますか?この旗?

  3. ...そして特に、 を勉強した後でoauth2client.appengine.OAuth2Decorator.oauth_requiredも、それを自分のケースに曲げることができるかどうか、または自分のことをすべきかどうかはまだわかりません.
    →どう思いますか?

御時間ありがとうございます; 必要に応じて、irc://irc.freenode.net/#appengine にも参加していronjます。

4

1 に答える 1