Перейти к содержимому

Как получить данные по api

  • автор:

Получение данных из API хранилища данных Intune с помощью клиента REST

Доступ к модели данных Data Warehouse Intune можно получить через конечные точки RESTful. Чтобы получить доступ к данным, клиент должен авторизоваться с помощью идентификатора Microsoft Entra с помощью OAuth 2.0. Чтобы включить доступ, сначала настройте собственное приложение в Azure и предоставьте разрешения api Microsoft Intune. Локальный клиент получает авторизацию, а затем клиент может взаимодействовать с конечными точками Data Warehouse через собственное приложение.

Чтобы настроить клиент для получения данных из API Data Warehouse, необходимо:

  1. Создание клиентского приложения в качестве собственного приложения в Azure
  2. Предоставление клиентскому приложению доступа к API Microsoft Intune
  3. Создание локального клиента REST для получения данных

Выполните следующие действия, чтобы узнать, как авторизовать API и получить доступ к ним с помощью клиента REST. Во-первых, вы изучите использование универсального клиента REST с помощью Postman. Postman — это часто используемое средство для устранения неполадок и разработки клиентов REST для работы с API. Дополнительные сведения о Postman см. на сайте Postman . Затем можно просмотреть пример кода C#. Пример предоставляет пример для авторизации клиента и получения данных из API.

Создание клиентского приложения в качестве собственного приложения в Azure

Создайте собственное приложение в Azure. Это собственное приложение является клиентским приложением. Клиент, работающий на локальном компьютере, ссылается на API Data Warehouse Intune, когда локальный клиент запрашивает учетные данные.

  1. Войдите в центр администрирования Microsoft Entra .
  2. Выберите Microsoft Entra idApp Registrations (Регистрация приложений Microsoft Entra id>), чтобы открыть панель Регистрация приложений.
  3. Выберите Создать регистрацию приложения.
  4. Введите сведения о приложении.
    1. Введите понятное имя, например Intune Data Warehouse Client.
    2. Выберите Учетные записи только в этом каталоге организации (только Майкрософт — один клиент) для поддерживаемых типов учетных записей.
    3. Введите URL-адрес для URI перенаправления. URI перенаправления будет зависеть от конкретного сценария, однако если вы планируете использовать Postman, введите https://www.getpostman.com/oauth2/callback . Вы будете использовать обратный вызов для проверки подлинности клиента при проверке подлинности для Microsoft Entra идентификатора.

    Предоставление клиентскому приложению доступа к API Microsoft Intune

    Теперь у вас есть приложение, определенное в Azure. Предоставьте доступ из собственного приложения к API Microsoft Intune.

    1. Войдите в центр администрирования Microsoft Entra .
    2. Выберите Microsoft Entra idApp Registrations (Регистрация приложений Microsoft Entra id>), чтобы открыть панель Регистрация приложений.
    3. Выберите приложение, которое необходимо предоставить доступ. Вы назвали приложение таким образом, как Intune Data Warehouse Client.
    4. Выберите Разрешения> APIДобавить разрешение.
    5. Найдите и выберите API Intune. Он называется Microsoft Intune API.
    6. Установите флажок Делегированные разрешения и щелкните поле Получение сведений о хранилище данных из Microsoft Intune.
    7. Щелкните Добавить разрешения.
    8. При необходимости выберите Предоставить согласие администратора для Корпорации Майкрософт в области Настроенные разрешения, а затем нажмите кнопку Да. Это позволит получить доступ ко всем учетным записям в текущем каталоге. Это предотвратит появление диалогового окна согласия для каждого пользователя в клиенте. Дополнительные сведения см. в статье Интеграция приложений с идентификатором Microsoft Entra.
    9. Выберите Секреты сертификатов&>+ Новый секрет клиента и создайте новый секрет. Обязательно скопируйте его в безопасном месте, так как вы не сможете получить к нему доступ снова.

    Получение данных из API Microsoft Intune с помощью Postman

    Вы можете работать с API Data Warehouse Intune с помощью универсального клиента REST, например Postman. Postman может предоставить представление о функциях API, базовой модели данных OData и устранить неполадки при подключении к ресурсам API. В этом разделе вы найдете сведения о создании маркера Auth2.0 для локального клиента. Клиенту потребуется маркер для проверки подлинности с помощью идентификатора Microsoft Entra и доступа к ресурсам API.

    Сведения, необходимые для вызова

    Чтобы выполнить вызов REST с помощью Postman, вам потребуются следующие сведения:

    Атрибут Описание Пример
    URL-адрес обратного вызова Задайте его в качестве URL-адреса обратного вызова на странице параметров приложения. https://www.getpostman.com/oauth2/callback
    Token Name Строка, используемая для передачи учетных данных в приложение Azure. Процесс создает маркер, чтобы можно было выполнить вызов API Data Warehouse. Токен носителя.
    URL-адрес проверки подлинности Это URL-адрес, используемый для проверки подлинности. https://login.microsoftonline.com/common/oauth2/authorize?resource=https://api.manage.microsoft.com/
    URL-адрес маркера доступа Это URL-адрес, используемый для предоставления маркера. https://login.microsoftonline.com/common/oauth2/token
    Идентификатор клиента Вы создали и замечали это при создании собственного приложения в Azure. 4184c61a-e324-4f51-83d7-022b6a81b991
    Секрет клиента Вы создали и замечали это при создании собственного приложения в Azure. Ksml3dhDJs+jfK1f8Mwc8
    Область (необязательно) «Пустой». Поле можно оставить пустым.
    Тип предоставления Маркер — это код авторизации. Код авторизации

    Конечная точка OData

    Вам также потребуется конечная точка. Чтобы получить конечную точку Data Warehouse, потребуется URL-адрес пользовательского веб-канала. Конечную точку OData можно получить на панели Data Warehouse.

    1. Войдите в Центр администрирования Microsoft Intune.
    2. Откройте область Data Warehouse, выбравХранилище данныхотчетов>.
    3. Скопируйте URL-адрес пользовательского веб-канала в веб-каналЕ OData для службы отчетов. Он должен выглядеть примерно так: https://fef.tenant.manage.microsoft.com/ReportingService/DataWarehouseFEService?api-version=v1.0

    Конечная точка соответствует следующему формату: https://fef..manage.microsoft.com/ReportingService/DataWarehouseFEService/?api-version=

    Например, сущность dates выглядит следующим образом: https://fef.tenant.manage.microsoft.com/ReportingService/DataWarehouseFEService/dates?api-version=v1.0

    Вызов REST

    Чтобы получить новый маркер доступа для Postman, необходимо добавить URL-адрес авторизации Microsoft Entra, идентификатор клиента и секрет клиента. Postman загрузит страницу авторизации, где вы введите учетные данные.

    Перед выполнением вызова убедитесь, что url-адрес обратного вызова уже добавлен в приложение в Azure. URL-адрес обратного вызова — https://www.getpostman.com/oauth2/callback .

    Добавление сведений, используемых для запроса маркера

    Сведения о маркере доступа.

    1. Скачайте Postman, если он еще не установлен. Чтобы скачать Postman, см. www.getpostman.com.
    2. Откройте Postman. Выберите операцию HTTP GET.
    3. Вставьте URL-адрес конечной точки в адрес. Он должен выглядеть примерно так: https://fef.tenant.manage.microsoft.com/ReportingService/DataWarehouseFEService/dates?api-version=v1.0
    4. Перейдите на вкладку Авторизация и выберите OAuth 2.0 в списке Тип .
    5. Прокрутите вниз до раздела Настройка нового токена .
    6. Введите Bearer в поле Имя токена.
    7. Выберите Код авторизации в качестве типа предоставления.
    8. Добавьте URL-адрес обратного вызова. URL-адрес обратного вызова — https://www.getpostman.com/oauth2/callback .
    9. Добавьте URL-адрес проверки подлинности. Он должен выглядеть примерно так: https://login.microsoftonline.com/common/oauth2/authorize?resource=https://api.manage.microsoft.com/
    10. Добавьте URL-адрес маркера доступа. Он должен выглядеть примерно так: https://login.microsoftonline.com/common/oauth2/token
    11. Добавьте идентификатор клиента из собственного приложения, созданного в Azure с именем Intune Data Warehouse Client . Он должен выглядеть примерно так: 88C8527B-59CB-4679-A9C8-324941748BB4
    12. Добавьте секрет клиента , созданный из собственного приложения, созданного в Azure. Он должен выглядеть примерно так: Ksml3dhDJs+jfK1f8Mwc8
    13. Выберите Получить новый маркер доступа.
    14. Введите учетные данные на странице авторизации Active AD. Список маркеров в Postman теперь содержит маркер с именем Bearer .
    15. Выберите Использовать токен. Список заголовков содержит новое значение ключа Authorization и значение Bearer .
    Отправка вызова в конечную точку с помощью Postman

    Состояние клиента Postman равно 200 OK.

    1. Нажмите кнопку Отправить.
    2. Возвращаемые данные отображаются в тексте ответа Postman.

    Создайте клиент REST (C#) для получения данных из Data Warehouse Intune

    Следующий пример содержит простой клиент REST. Код использует класс httpClient из библиотеки .NET. После получения учетных данных для Microsoft Entra идентификатора клиент создает вызов REST GET для получения сущности dates из API Data Warehouse.

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

    1. Откройте Microsoft Visual Studio.
    2. Выберите Файл>Новый проект. Разверните узел Visual C# и выберите Консольное приложение (платформа .NET Framework).
    3. Присвойте проекту IntuneDataWarehouseSamples имя , перейдите к месту, где вы хотите сохранить проект, а затем нажмите кнопку ОК.
    4. Щелкните правой кнопкой мыши имя решения в Обозреватель решений и выберите Управление пакетами NuGet для решения. Нажмите кнопку Обзор и введите Microsoft.Identity.Client в поле поиска.

    Примечание. Необходимо использовать библиотеку проверки подлинности Майкрософт (MSAL). Подробности см. в статье Обновление приложений, чтобы использовать библиотеку проверки подлинности Майкрософт (MSAL) и API Microsoft Graph

    Program.cs и Обозреватель решений в Visual Studio.

  5. Выберите пакет, выберите проект IntuneDataWarehouseSamples в разделе Управление пакетами для решения и нажмите кнопку Установить.
  6. Выберите Я принимаю , чтобы принять лицензию на пакет NuGet.
  7. Откройте Program.cs из Обозреватель решений.
  8. Замените код в Program.cs следующим кодом:

    namespace IntuneDataWarehouseSamples < using System; using System.Net.Http; using System.Net.Http.Headers; using Microsoft.Identity.Client; class Program < static void Main(string[] args) < /** * TODO: Replace the below values with your own. * emailAddress - The email address of the user that you will authenticate as. * * password - The password for the above email address. * This is inline only for simplicity in this sample. We do not * recommend storing passwords in plaintext. * * applicationId - The application ID of the native app that was created in AAD. * * warehouseUrl - The data warehouse URL for your tenant. This can be found in * the Microsoft Intune admin center. * * collectionName - The name of the warehouse entity collection you would like to * access. */ var emailAddress = "intuneadmin@yourcompany.com"; var password = "password_of(intuneadmin@yourcompany.com)"; var applicationId = ""; var warehouseUrl = "https://fef..manage.microsoft.com/ReportingService/DataWarehouseFEService?api-version=v1.0"; var collectionName = "dates"; var msalContext = new AuthenticationContext("https://login.windows.net/common/oauth2/token"); AuthenticationResult authResult = msalContext.AcquireTokenAsync( resource: "https://api.manage.microsoft.com/", clientId: applicationId, userCredential: new UserPasswordCredential(emailAddress, password)).Result; var httpClient = new HttpClient(); httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authResult.AccessToken); var uriBuilder = new UriBuilder(warehouseUrl); uriBuilder.Path += "/" + collectionName; HttpResponseMessage response = httpClient.GetAsync(uriBuilder.Uri).Result; Console.Write(response.Content.ReadAsStringAsync().Result); Console.ReadKey(); > > > 

    Сущность Date, полученная в формате JSON.

  9. Обновите их TODO в примере кода.
  10. Нажмите клавиши CTRL+F5 , чтобы выполнить сборку и выполнение клиента Intune.DataWarehouseAPIClient в режиме отладки.
  11. Просмотрите выходные данные консоли. Выходные данные содержат данные в формате JSON, полученные из сущности dates в клиенте Intune.

Дальнейшие действия

Сведения об авторизации, структуре URL-адресов API и конечных точках OData см. в статье Использование API Data Warehouse Intune.

Для поиска сущностей данных, содержащихся в API, можно также обратиться к модели данных Data Warehouse Intune. Дополнительные сведения см. в разделе Intune Data Warehouse модели данных API.

Как получить данные из API ссылки

введите сюда описание изображения

Данные json файла выглядят так: Хочу получить данные из этой API ссылки и вставить в выпадающий список input option только name по id . Я написал такой код, но данные из ссылки не выводятся

      Document  

Select

С этим API все работает where is the iss Раньше с API никогда не имел дела, поэтому мой вопрос покажется элементарным, но все равно прошу дать ответ.

Получение данных из REST API

Пользователи могут подключаться к источникам REST API используя мастер подключения к данным.

Разработчики могут настроить подключения REST API в таблице xls.objects или представлениях списков запросов, чтобы предоставить пользователям возможность подключения без дополнительных шагов по настройке.

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

Ниже приведен формат настройки для таблицы xls.objects:

ID TABLE_SCHEMA TABLE_NAME TABLE_TYPE TABLE_CODE INSERT_OBJECT UPDATE_OBJECT DELETE_OBJECT
HTTP

Ниже приведен формат настройки для представления списка запросов:

ID TABLE_SCHEMA TABLE_NAME TABLE_TYPE TABLE_CODE INSERT_PROCEDURE UPDATE_PROCEDURE DELETE_PROCEDURE PROCEDURE_TYPE
HTTP

В таблицы приведен пример настройки для ZohoCRM:

ID TABLE_SCHEMA TABLE_NAME TABLE_TYPE TABLE_CODE INSERT_OBJECT UPDATE_OBJECT DELETE_OBJECT
ZohoCRM Accounts HTTP https://www.zohoapis.com/crm/v2/Accounts
ZohoCRM Contacts HTTP https://www.zohoapis.com/crm/v2/Contacts
ZohoCRM Leads HTTP https://www.zohoapis.com/crm/v2/Leads

Пример содержит три настроенных объекта в схеме ZohoCRM: Accounts, Contacts, and Leads.

Поле TABLE_CODE содержит URL для загрузки данных.

Другие поля могут содержать форматы команд REST API для добавления, изменения и удаления данных. См. Сохранение данных по REST API.

Объекты REST API имеют тип HTTP, как и объекты получения данных из веб.

Однако, следует иметь ввиду несколько важных различий:

  1. REST API возвращает типизированный JSON или XML, тогда как для объектов веб обычно требуется специфическое извлечение данных.
  2. REST API поддерживает сохранение изменений.
  3. REST API обычно требует аутентификацию пользователя.
  4. REST API может поддерживать постраничную выдачу данных.
  5. REST API может поддерживать операции SELECT, WHERE, GROUP BY и ORDER BY на уровне сервиса.

Для обработки типизированных данных, надстройка использует специальный парсер. Для его использования добавьте параметр парсера ApiResult=true.

https://www.zohoapis.com/crm/v2/Contacts;ApiResult=true

Чтобы узнать, как настроить сохранение изменений, см. Сохранение данных по REST API.

Чтобы узнать больше об аутентификации, см. HTTP-аутентификация.

Чтобы загрузить все страницы данных, используйте специальную вставку как значение параметра страницы. Надстройка будет автоматически увеличивать номер страницы и делать новый запрос, если данные текущей страницы получены.

https://www.zohoapis.com/crm/v2/Contacts?page=;ApiResult=true

В URL можно добавить любые другие параметры, которые поддерживаются API сервиса.

SaveToDB 10 позволяет настроить колонки, которые определены для API, в таблице xls.columns.

В этом случае, надстройка будет позволять пользователям выбирать колонки для вывода в мастере подключения.

Например, если пользователь выберет поля ID, First_Name и Last_Name, то надстройка сгенерирует команду

SELECT ID, First_Name, Last_Name FROM [https://www.zohoapis.com/crm/v2/Contacts?page=;ApiResult=true]

В этом случае будут загружены все данные, однако в Excel будут вставлены только выбранные колонки.

В URL можно использовать вставку , чтобы передать список выбранных полей.

https://www.zohoapis.com/crm/v2/Contacts?fields=&page=;ApiResult=true

В приведенном примере, надстройка сгенерирует команду:

SELECT ID, First_Name, Last_Name FROM [https://www.zohoapis.com/crm/v2/Contacts?fields=ID,First_Name,Last_Name&page=;ApiResult=true]

В результате сервис вернет только те поля, которые требуются, с экономией трафика и времени.

Если пользователь выберет все колонки, то надстройка удалит параметр списка полей, и команда будет выглядеть как

https://www.zohoapis.com/crm/v2/Contacts?page=;ApiResult=true
  • xls.objects
  • xls.columns
  • Получение данных из веб
  • Сохранение данных по REST API
  • HTTP-аутентификация
  • HTTP-команды

Получение данных по OData
Получение данных из ODataDB

Этот веб-сайт использует куки. Продолжая использовать веб-сайт, Вы принимаете условия Политики защиты персональных данных .

Как получать данные от API и показывать их в Web?

Возникла необходимость в реализации некоторой программы, которой нет в интернете.
Поподробнее:

Есть сервер игры, на котором хочется отслеживать онлайн. Например, вот: https://minecraft-statistic.net/ru/server/mcmwc/st.
Онлайн этого сервера обновляется каждые 10 минут, ибо так решил администратор ресурса.

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

Например:
мы получаем значение онлайна сервера по api с сайта https://mcapi.ca/query/play.minesuperior.com/info , где play.minesuperior.com — ip сервера.
в формате json нам нужна только одна строка:

а именно online
дальше необходимо обращаться к этому же api каждую минуту, а значения online выводить в график на странице по типу того, что есть https://minecraft-statistic.net/ru/server/mcmwc/st.

Есть мысли, как можно это реализовать?
Посредством python можно обращаться к api и получать значения online, а дальше их, например, записывать в файл или в базу данных, а php будет забирать каждую минуту значения из БД и показывать их на сайт
но тогда встает вопрос: а будет ли динамичное обновление страницы и не надо ли ее будет перезагружать каждый раз?

Если нет, то может посредством php без python? но если в первом я смогу это сделать, то с php могут возникнуть большие проблемы: я не представляю, как это реализовать

Если есть какие-либо идеи, предложения или вопросы по тому, что я написал — пишите, всем отвечу!
Заранее спасибо!

  • Вопрос задан более трёх лет назад
  • 10464 просмотра

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *