Регистрация устройства Android Enterprises застряла с QR-кодом, сгенерированным NodeJs, с аутентификацией служебной учетной записи
Как упоминалось в документах Google, я протестировал следующий процесс
URL для быстрого старта:
https://colab.research.google.com/github/google/android-management-api-samples/blob/master/notebooks/quickstart.ipynb#scrollTo=pjHfDSb8BoBP
- Создать предприятие
- Политика Крита
- Зарегистрируйте устройство
Затем я использовал 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"
}