Регистрация устройства Android Enterprises застряла с QR-кодом, сгенерированным NodeJs, с аутентификацией служебной учетной записи

Как упоминалось в документах Google, я протестировал следующий процесс

URL для быстрого старта: https://colab.research.google.com/github/google/android-management-api-samples/blob/master/notebooks/quickstart.ipynb#scrollTo=pjHfDSb8BoBP

  1. Создать предприятие
  2. Политика Крита
  3. Зарегистрируйте устройство

Затем я использовал NODEJS API Android Enterprises для разработки серверного решения, которое отлично работает в соответствии с документацией для всех функций, таких как получение, создание, удаление политики, устройств, предприятий.

Проблема, с которой я столкнулся, связана с QR-кодом, сгенерированным из приложения NODE, когда я сканирую QR-код, сгенерированный из приложения NODEJS, устройство зависло при обновлении системы.

Ниже приводится моя функция обновления политики.

       router.post('/update/:id', async function(req, res) {
      const {title,policy_body,update_mask,enroll_url} = req.body;
      // here we are callng the android managment API to and then the response we will update to database
      const amApiBody  = {
        name: policy_body.name,
        updateMask:update_mask,
        requestBody:policy_body
      }
    const policy_update_response =  await  amApi.updatePolicy(amApiBody);
      const p =  await  policyModel.update(req.params.id,title,policy_update_response,enroll_url);
    res.json(p)
 });

AmAPI файл

          this.updatePolicy = async function (body)
    { 
            const auth = new google.auth.GoogleAuth({
                scopes: ['https://www.googleapis.com/auth/androidmanagement'],
            });

            const authClient = await auth.getClient();
            google.options({auth: authClient});
            
            // Get the list of available policies
            const res = await androidmanagement.enterprises.policies.patch(body);
            console.log('requestFinalBody=',body);
            return res.data;

    }

Ниже приведены данные моей политики, полученные при выполнении вышеуказанной функции.

      policy_create_response= {
  name: 'enterprises/LC019rjnor/policies/policy1',
  version: '14',
  applications: [
    {
      packageName: 'com.google.samples.apps.iosched',
      installType: 'FORCE_INSTALLED',
      autoUpdateMode: 'AUTO_UPDATE_HIGH_PRIORITY'
    },
    {
      packageName: 'com.dekaisheng.courier',
      installType: 'FORCE_INSTALLED',
      autoUpdateMode: 'AUTO_UPDATE_HIGH_PRIORITY'
    }
  ],
  keyguardDisabledFeatures: [ 'KEYGUARD_DISABLED_FEATURE_UNSPECIFIED' ],
  defaultPermissionPolicy: 'GRANT',
  uninstallAppsDisabled: true,
  keyguardDisabled: true,
  tetheringConfigDisabled: true,
  dataRoamingDisabled: true,
  networkEscapeHatchEnabled: true,
  bluetoothDisabled: true,
  debuggingFeaturesAllowed: true,
  funDisabled: true,
  kioskCustomLauncherEnabled: true
}

Обратите внимание, что перед запуском приложения я экспортировал переменную в терминал следующим образом: auth.json - это файл учетных данных учетной записи службы.

      export GOOGLE_APPLICATION_CREDENTIALS="/Users/Mac/Projects/wajid/mdm/server/env/auth.json"  

Спасибо за помощь в продвижении

1 ответ

Я понял, что в API nodeJS я передавал неправильное имя свойства значения политики в теле запроса.

Код перед исправлением

              parent: this.getParent(policyName),
        requestBody:{
            “name”: “my_policy"
        }

Код после исправления

       parent: this.getParent(policyName),
        requestBody:{
            "policyName”: “my_policy"
        }
Другие вопросы по тегам