Как получить токен доступа, используя сервисную учетную запись - PullRequest
0 голосов
/ 07 апреля 2020

Я хочу получить токен доступа, используя служебную учетную запись, но проблема в том, куда поместить файл json? Как связать это. В разделе do c нет соответствующих инструкций. Нужно ли мне asynctask?

Вот код:

    HttpTransport HTTP_TRANSPORT = new NetHttpTransport();
    JsonFactory JSON_FACTORY = new JacksonFactory();

    GoogleCredential credential = new GoogleCredential.Builder()
        .setTransport(HTTP_TRANSPORT)
        .setJsonFactory(JSON_FACTORY)
        .setServiceAccountId("")
        .setServiceAccountScopes("https://www.googleapis.com/auth/androidpublisher")
        .setServiceAccountPrivateKeyFromP12File(keyFile) // where to put the json file?
        .build();
      AccessToken accessToken = credentials.refreshAccessToken();

1 Ответ

1 голос
/ 07 апреля 2020

Шаги для получения токена доступа из Сервисной учетной записи.

  class MainActivity : AppCompatActivity() {
          override fun onCreate(savedInstanceState: Bundle?) {
                super.onCreate(savedInstanceState)
                setContentView(R.layout.activity_main)
                authExplicit()
            }
             fun authExplicit() {
                    CoroutineScope(Dispatchers.Default).launch {
                        try {
                            val credentials =
                                GoogleCredentials.fromStream(resources.assets.open("studentsamplechatbot-xvgloa.json"))
                                    .createScoped(Collections.singletonList("https://www.googleapis.com/auth/dialogflow"))
                            credentials.refreshIfExpired()
                            val accessToken = credentials.accessToken
                            Log.e("log_data", "Token :" + accessToken.tokenValue)
                            if (accessToken.tokenValue.isNotEmpty()) {
                                Log.e(
                                    "log_data",
                                    "Got it --> authenticationType :" + credentials.authenticationType
                                )
                                AuthToken = "Bearer " + accessToken.tokenValue
                            } else {
                                Log.e("log_data", "No token")
                                AuthToken = ""
                            }
                            CoroutineScope(Dispatchers.Main).launch {
                                initViews()
                            }
                        } catch (e: Exception) {
                            Log.e("log_data", e.toString())
                        }
                    }
                }
        }

Вы можете скачать с Google Cloud Platform

  1. Google Cloud Platform -> Выберите свой проект -> IAM & Admin -> Сервисные учетные записи -> Создать сервисную учетную запись

  2. Создание учетной записи службы откроет одну страницу, есть несколько деталей, которые добавляют детали и создают ее.

  3. После создания учетной записи службы вы можете найдите созданную учетную запись службы в списке.

  4. Справа находится столбец действий с тремя точками на каждой. из этого есть одна опция создать ключ . При нажатии на него откроется одно диалоговое окно с двумя вариантами JSON и P12 . Когда вы выбираете JSON и нажимаете кнопку «Создать», он загружает файл JSON вашей учетной записи службы.

  5. Вы можете использовать этот файл JSON для вашего Android проекта и поместите его в папку assets. Ваш проект -> приложение -> ср c -> main -> активы

  6. Вы можете использовать вышеуказанную функцию для получения токена доступа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...