OAuth 2.0 がモバイル アプリまたは Web サイトのコンテキストでどのように機能するかを理解していると思いますが、私の場合もそうではありません。
Google サービスの 1 つ ( Google Fusion Tables )へのアクセスを許可したいC++コマンド ラインアプリケーションがありますが、この質問は Google サービスのいずれにも当てはまると思います。 OAuth2 で。
私はユーザー名を持っています。パスワードを知っています (ユーザーが入力しました)。Curl を介して呼び出しを行うには、トークンを取得する必要があります。これを達成する最も簡単な方法は何ですか?
更新 1:
ドキュメントを読んだ後、最も苦痛の少ない OAuth2 フローは「インストールされたアプリケーション」になるようです。
私が考えているのは、私のコマンド ライン ツールはトークンを必要とせずにパブリック テーブルのリクエストを行うということです (ただし、Google API ダッシュボードから取得できる Google から AppID を送信する必要があるようです)。
コマンド ライン ツールでプライベート リソースを使用する必要がある場合は常に、そのユーザーは Google 提供の認証コードを提供する必要があります(コマンド ライン ツールは使用可能なトークンを取得するために使用できます)。ユーザーがコマンド ラインで認証コードを指定していない場合、私のツールは、ユーザーが URL に貼り付けて認証コードを生成できるリンクを出力するだけです。リンクは次のようになります。
ユーザーが同意したら、その認証コードを端末に貼り付けて、コマンド ライン ツールで使用できるようにする必要があります。コマンド ライン ツールは認証コードを使用して Google にトークンを要求し、最後に Google トークンを使用して API 呼び出しを行うことができます。
いくつかのことはまだ私には不明です。認証コードは変更されますか? もしそうなら、トークンの有効期限が切れるたびに更新トークンを再利用できるように、トークンと更新トークンをどこかに保存する必要があるようです。
それは私だけですか、それとも、コマンド ラインから Google API を使用できるようにするためだけに、このすべてがクレイジーな話のように思えますか?
私は通常ClientLogin フローを使用しますが、すべてがすぐに非推奨になることを指摘しているようです。