繁体   English   中英

在Google服务帐户中将访问令牌获取为Null

[英]Getting access token as Null in Google service account

我正在使用Google服务帐户使用以下代码从服务端获取访问令牌。 但是我获得的访问令牌为Null。 相同的返回令牌将用于在客户端打开同一userEmailId的Google文件选择器。 请提出我在代码中做错的事情。

private static final List SCOPE = Arrays.asList("https://www.googleapis.com/auth/drive");

public String getAccessToken(String SERVICE_ACCOUNT_EMAIL, String SERVICE_ACCOUNT_PKCS12_FILE_PATH,String userEmailId){
                try {
                    HttpTransport httpTransport = new NetHttpTransport();
                    JsonFactory jsonFactory = new JacksonFactory();
                    GoogleCredential credential = new GoogleCredential.Builder()
                                                    .setTransport(httpTransport)
                                                    .setJsonFactory(jsonFactory)
                                                    .setServiceAccountId(SERVICE_ACCOUNT_EMAIL)
                                                    .setServiceAccountScopes(SCOPE)
                                                    .setServiceAccountUser(userEmailId)
                                                    .setServiceAccountPrivateKeyFromP12File(new java.io.File(SERVICE_ACCOUNT_PKCS12_FILE_PATH))
                                                    .build();

                    credential.getRefreshToken();
                    return credential.getAccessToken();
                } catch (Exception e) {
                    // TODO: handle exception
                    log.severe("Error while getting Drive  credentilas. 5.0"+ e.getMessage());
                    return null;
                }
            }

我有一个类似的问题。 答案似乎是简单地从credential.getRefreshToken()更改为credential.refreshToken()

那应该解决问题

对于使用Firebase Admin SDK(因此使用GoogleCredentials类)的用户,这可以做到。

GoogleCredentials credentials = GoogleCredentials.fromStream(serviceAccount).createScoped(Arrays.asList("https://www.googleapis.com/auth/firebase.messaging"));
credentials.refresh();
credentials.getAccessToken();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM