MS Graph / assignLicense: ожидалось примитивное нулевое значение

1

Из python я пытаюсь назначить лицензию пользователю в Office365 с использованием MS Graph API.

request_url = "https://graph.microsoft.com/v1.0/users/[email protected]/assignLicense"
headers = { 
 'Authorization' : 'Bearer ' + token,
 'Content-Type' : 'application/json',
}

response = requests.post(url = request_url, headers = headers, json={'addLicenses': 'testGUID'})

Однако я получаю следующее сообщение об ошибке:

{
  "error": {
    "code": "Request_BadRequest",
    "innerError": {
      "date": "2018-08-27T15:56:45",
      "request-id": "9ddde6c8-5fe1-4425-ba84-bc49fa35e2b8"
    },
    "message": "When trying to read a null collection parameter value in JSON Light, a node of type 'PrimitiveValue' with the value 'test' was read from the JSON reader; however, a primitive 'null' value was expected."
  }
}

Как я могу назвать assignLicense из python?

Теги:
microsoft-graph

1 ответ

2
Лучший ответ

Вы назначаете GUID для addLicenses который является неправильным. Из документации addLicenses определяется как:

Коллекция assignedLicense объектов License, которые определяют лицензии для добавления.

Другими словами, это массив assignedLicense объектов License. Чтобы назначить лицензию пользователю, вам необходимо отправить следующую полезную нагрузку JSON:

{
  "addLicenses": [
    {
      "disabledPlans":[ ],
      "skuId": "guid"
    }
  ],
  "removeLicenses":[ ]
}

Я считаю, что Python для этого будет выглядеть примерно так:

request_url = "https://graph.microsoft.com/v1.0/users/[email protected]/assignLicense"
headers = { 
 'Authorization' : 'Bearer ' + token,
 'Content-Type' : 'application/json',
}
data = [
    "addLicenses": [
    {
      "disabledPlans":[ ],
      "skuId": "GUID"
    }
  ],
  "removeLicenses":[ ]
]
requests.post(url, json=data, headers=headers)
  • 1
    Вы правы, похоже, что removeLicenses является обязательным свойством. Я полагаю, что вы получаете ошибку из пустой строки ( [''] ). Я обновил мой пример выше, чтобы отразить дополнительные реквизиты.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню