2

Googleドライブにアクセスするためにoauth2でユーザーを認証したい。AccountManager を使用してアカウントを取得するときに必要なアクセス トークンを取得し、次の方法でトークンを取得できます。

mgr.blockingGetAuthToken(account, ApiConst.DRIVE_AUTH_SCOPE, true);

しかし、電話に追加されたアカウントを使用する代わりに、ユーザー名とパスワードを提供してユーザーを認証できるようにしたいと考えています。これは可能ですか?

編集

そのため、WebView で承認を実装しようとしました。私はこの例に従いました。コード リクエスト パラメータを抽出しましたが、アクセス トークンの取得に使用されるコードは非推奨であり、Google ドライブ SDK で使用されるパッケージと互換性がないようです。これは、例でアクセス トークンを取得するために使用されるコードです。

AccessTokenResponse accessTokenResponse = new GoogleAuthorizationCodeGrant(new NetHttpTransport(),
new JacksonFactory(),
OAuth2ClientCredentials.CLIENT_ID,
OAuth2ClientCredentials.CLIENT_SECRET,
code,
OAuth2ClientCredentials.REDIRECT_URI).execute();

これは他の方法で行うことができますか、それともあきらめるべきですか?

4

1 に答える 1

0

Android を使用している場合は、ユーザーを認証するためにすべてのことを行う必要はありません。ユーザーのアカウントを設定するには、「GoogleAccountCredential」オブジェクトを使用するだけです。

GoogleAccountCredential credential = GoogleAccountCredential.usingOAuth2(this, scopes);
credential.setSelectedAccountName(theGoogleAccount);

選択したユーザーのアカウントには、次のものが必要であることを覚えておいてください。

startActivityForResult(credential.newChooseAccountIntent(), REQUEST_ACCOUNT);

次に、ドライブを初期化できます。

Drive service = new Drive.Builder(AndroidHttp.newCompatibleTransport(), new GsonFactory(), credential).build();

ご挨拶。

于 2013-07-02T12:09:32.173 に答える