我花了最近两天的时间搜索和研究这个问题,我必须承认,与我已经完成的iOS或Windows相比,我在Android中实现这一点感到非常复杂!
我试图获取令牌和刷新令牌以发送到我的后端服务器,以便它可以代表用户处理Drive API调用,这只是一个巨大的混乱!
我试图关注许多不同的博客,谷歌开发者页面的无数不同方式,这里和其他地方的无数帖子。 什么都行不通。
也许这里有人可以帮助我...... 这是我目前的情况:
首先我使用
String[] accountTypes = new String[]{"com.google"};
Intent intent = AccountPicker.newChooseAccountIntent(null, null,
accountTypes, false, null, null, null, null);
startActivityForResult(intent, 10001);
选择一个帐户或注册一个新的Google帐户。 然后,我正在使用
GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(new NetHttpTransport(),
new JacksonFactory(),
clientId,
secret,
Arrays.asList(DriveScopes.DRIVE)).setAccessType("offline").setApprovalPrompt("force")
.build();
生成GoogleAuthorizationCodeFlow对象。有了这个,我可以获得GoogleAuthorizationCodeTokenRequest。但我得到的回应只有一个令牌。没有刷新令牌。
我已经批准了出现的同意对话框,根据我的理解,该对话框也应该在之后为我提供刷新令牌。
我做错了什么?或者至少,有什么地方我可以找到一个关于如何获得刷新令牌的明确例子吗?