Google Gmail APIを使用してメールを転送するアプリケーションを実装しました。しかしそうするためには、私はOAuth 2.0を承認しなければなりません。 特定のデバイスの認証が完了したかどうかを確認するにはどうすればよいですか?OAuth 2.0が既に承認されているかどうかを確認してください
たとえば、アプリをダウンロードしてアカウントを選択し、必須アクションであるため、最初にメールを送信する許可を与えたいと考えています。 私の方法は電子メールを送信しようとすることです。失敗した場合、AsyncTaskでonCancelled()を取得し、GoogleAuthExceptionを処理してエラー(mLastError)を取得します。これは悪い考えです。許可されているかどうかを確認するほうがはるかに簡単です。
私はの偽のメールを送信してUserRecoverableAuthIOExceptionを取得し、それを処理して承認します。その後、すべて正常に動作します。
activity.startActivityForResult((UserRecoverableAuthIOException) mLastError).getIntent(), MainActivity.REQUEST_AUTHORIZATION);
私はALLOWを選択し、APIはうまく機能します。
共有設定でアプリが許可されているフラグを保存できますが、アプリを再インストールすると、端末はまだ認証されており、その情報はありません。
だから私は、トークン削除するhttps://accounts.google.com/o/oauth2/revoke?token=XXX カール を使用する必要があります。
なぜ私のアプリはまだ承認されていますか? なぜトークンを手動で取り消す必要があるのですか? 有効期限はありますが、確認する方法はありますか? 有効期限が切れていない場合は、もう一度認証せずに引き続きアプリを使用できます。 アイデア
おかげ
を、私はこれらの情報の全てを理解し、私は、アプリケーションの最初の起動時に及びませ送信する第一のメッセージに許可を要求する方法を疑問に思います。 1回目の送信を待つ場合、メッセージは自動転送できません。ユーザーの操作を待つためです。その後、すべてのメッセージを自動転送することができます.. – vanste25