与Google API集成
与Google API集成
A3L身份验证SDK支持与Google API集成。这种集成可以允许用户在使用其Google账户登录您的应用后访问Google服务。目前,A3L身份验证支持Google Drive作用域。有关Google Drive作用域的详细信息,请参阅Google开发者文档中的选择Google Drive API作用域。
集成Google Drive
要将Google Drive与Fire OS应用集成,您必须首先与A3L身份验证SDK集成并实现登录功能。如需相关说明,请参阅集成A3L身份验证SDK。将Google Drive SDK作为依赖项添加到应用的build.gradle文件中,如下所示。
implementation('com.google.apis:google-api-services-drive:<version>')
使用google-api-services-drive的v3-rev20220709-2.0.0版本或更高版本。
创建A3LSignInOptions
对象时,通过requestScopes()
方法为Google Drive请求适当的作用域,如以下代码所示。
A3LSignInOptions a3LSignInOptions = new A3LSignInOptions
.Builder(A3LSignInOptions.DEFAULT_SIGN_IN)
.requestScopes(new Scope(DriveScopes.<SCOPE>))
.requestEmail()
.build();
创建凭证
登录用户后,使用FOSAccountCredential
对象为Google Drive创建凭证。创建对象时,传递与为A3LSignInOptions
传递的作用域相同的作用域,如以下示例所示。
FOSAccountCredential fosAccountCredential = new FOSAccountCredential.usingOAuth2(context, Collections.singleton(DriveScopes.<SCOPE>));
fosAccountCredential.setSelectedAccount(account);
在您的Google Drive生成器中使用此凭证,如下所示。
Drive googleDriveService = new Drive.Builder(new NetHttpTransport(),
new GsonFactory(),
fosAccountCredential)
.setApplicationName("<应用名称>")
.build();
现在,您可以将此Drive
对象与Google Drive API调用一起使用。以下代码显示如何使用Drive
对象,并列出最多10个文件的名称和ID。
FileList result = googleDriveService.files().list()
.setPageSize(10)
.setFields("nextPageToken, files(id, name)")
.execute();
List<File> files = result.getFiles();
if (files == null || files.isEmpty()) {
System.out.println("No files found.");
} else {
System.out.println("Files:");
for (File file : files) {
System.out.printf("%s (%s)\n", file.getName(), file.getId());
}
}
注意:
FOSAccountCredential
对象仅支持Fire OS设备。对于Google设备,请使用GoogleAccountCredential
对象。要确定正在使用哪台设备,请使用 getCurrentService ()
API 。此方法根据用户的设备返回字符串GoogleSignIn
或AppAuth
。类差异
下表列出了GoogleAccountCredential
和FOSAccountCredential
类中可用方法之间的差异。
API | 在GoogleAccountCredential中可用 | 在FOSAccountCredential中可用 |
---|---|---|
static usingAudience(Context context, String audience) |
是 | 否 |
static usingOAuth2(Context context, Collection<String> scopes) |
是 | 是 |
Constructor (Context context, String scope) |
是 | 是 |
getAllAccounts() |
是 | 是 仅返回用于登录的账户 |
getBackOff() |
是 | 是 |
getContext() |
是 | 是 |
getGoogleAccountManager() |
是 | 否 |
getScope() |
是 | 是 |
getSelectedAccount() |
是 | 是 |
getSelectedAccountName() |
是 | 是 |
getSleeper() |
是 | 是 |
getToken() |
是 | 是 |
initialize(HttpRequest request) |
是 | 是 |
newChooseAccountIntent() |
是 | 否 |
setBackOff(BackOff backOff) |
是 | 是 |
setSelectedAccount(Account selectedAccount) |
是 | 是 |
setSelectedAccountName(String accountName) |
是 | 是 |
setSleeper(Sleeper sleeper) |
是 | 是 |
相关主题
Last updated: 2023年12月5日