Токен из учетной записи службы учетных данных Google NULL

Я пытаюсь получить учетные данные для своей учетной записи службы Google с помощью следующего кода:

package function

import com.amazonaws.services.lambda.runtime.Context
import com.amazonaws.services.lambda.runtime.LambdaLogger
import com.amazonaws.services.lambda.runtime.RequestHandler
import pojo.Request

import com.google.api.client.googleapis.auth.oauth2.GoogleCredential
import com.google.api.services.sqladmin.SQLAdminScopes
import pojo.Response



class GoogleAuth implements RequestHandler<Request, Response> {

    private LambdaLogger logger

    @Override
    Response handleRequest(Request input, Context context) {

        logger = context.getLogger()
        ClassLoader classLoader = getClass().getClassLoader()
        File jsonCredentials = new File(classLoader.getResource("leads-cloud-function-service-account.json").getFile())
        FileInputStream fis = new FileInputStream(jsonCredentials)


        GoogleCredential credential = GoogleCredential.fromStream(fis).createScoped(Collections.singleton(SQLAdminScopes.SQLSERVICE_ADMIN))

        credential.getClientAuthentication()

        println("Thai test" + credential.getExpirationTimeMilliseconds())
        print("This is the credential" + credential.getAccessToken())

        return (new Response())

    }
}

Информация о миллисекундах истечения срока действия и AccessToken равны нулю. Кто-нибудь когда-нибудь испытывал такое?


person Thai Rodrigues    schedule 11.12.2020    source источник


Ответы (1)


Итак, я решил это сам, добавив перед getToken следующую команду:

credential.refreshToken()

Это не задокументировано должным образом на веб-сайте Google, но после его добавления это сработало отлично, и результаты отображаются с фактическими значениями.

Еще одна ошибка, с которой я столкнулся, была com.google.common.io.ByteStreams.exhaust (Ljava / io / InputStream;) J, чтобы ее решить, мне пришлось исправить зависимость, которую я использовал для этого:

<dependency>
 <groupId>com.google.api-client</groupId>
 <artifactId>google-api-client</artifactId>
 <version>1.31.1</version>
</dependency>

так что имейте это в виду!

person Thai Rodrigues    schedule 11.12.2020