Добавление функций предварительного просмотра и открытия, а также действий в файлы с помощью обработчиков файлов версии 2.0
Обработчики файлов — это тип надстройки Microsoft 365, который интегрирует пользовательские типы файлов в службу, обеспечивая широкие возможности для любого специального формата.
С помощью обработчиков файлов вы можете включить указанные ниже пользовательские интерфейсы в OneDrive для бизнеса и в библиотеках документов SharePoint:
- Пользовательские значки файлов (для файлов с защищаемыми расширениями)
- Создание файлов в браузере (для файлов с защищаемыми расширениями)
- Предварительный просмотр файлов (для файлов с защищаемыми расширениями)
- Расширенные функции просмотра и редактирования (для файлов со всеми расширениями)
- Дополнительные действия, запускаемые в вашем приложении (для файлов со всеми расширениями)
- Поддержка выбора нескольких элементов и действий над папками (только для дополнительных действий)
Дополнительные сведения см. в статье Примеры решений для обработчиков файлов.
Важно!
Агрессивное кэширование конфигураций обработчиков файлов выполняется во всей системе для оптимальной производительности. Чтобы изменения конфигурации вступили в силу, может потребоваться 24–48 часов. Сведения о настройке обработчиков файлов см. в статье Регистрация.
Изменения обработчиков файлов версии 2.0
Обновление до версии 2.0 для обработчиков файлов позволяет использовать дополнительные сценарии для SharePoint Online и OneDrive для бизнеса.
- С помощью API Microsoft Graph вы можете более надежно получать доступ к файлам, в том числе к метаданным файлов, разрешениям и функциям предоставления общего доступа.
- Вы можете добавить пользовательские кнопки, запускающие вашу надстройку с обработчиком файлов, с настраиваемым текстом и значками.
Компоненты, из которых состоит обработчик файлов
Обработчик файлов состоит из указанных ниже компонентов.
- Конечная точка обработчика файлов. Размещаемое у поставщика услуг приложение, включающее пользовательский интерфейс вашего обработчика файлов. Кроме того, эта конечная точка может предоставлять пользовательский интерфейс для функций создания, предварительного просмотра и редактирования файлов, зарегистрированных в вашем обработчике файлов.
- Манифест обработчика файлов. Набор метаданных, который определяет порядок взаимодействия между Office 365 и конечной точкой вашего обработчика файлов.
- Приложение, зарегистрированное в Azure Active Directory. Это приложение используется для авторизации доступа к выбранным файлам с помощью Microsoft Graph и является местом регистрации манифеста обработчика файлов.
Конечная точка обработчика файлов
Конечная точка обработчика файлов — это размещенное в облаке приложение, которое содержит функциональную логику для создания, предварительного просмотра, открытия и сохранения файлов типа, который он обрабатывает. Он может размещаться в любом стеке, включая стеки сторонних специалистов. Обработчики файлов используют Azure Active Directory для получения авторизованного доступа к Office 365 ресурсам, поэтому приложение необходимо зарегистрировать в Azure AD. Дополнительные сведения о регистрации приложения с помощью Azure AD см. в статье Регистрация приложения для Microsoft Graph.
Законченные примеры обработчика файлов см. в списке доступных примеров.
Манифест обработчика файлов
Манифест определяет взаимодействие между Office 365 и конечной точкой обработчика файлов. Манифест регистрируется в Azure Active Directory с помощью коллекции addIns для объекта приложения в каталоге. Сведения о регистрации или обновлении регистрации манифеста обработчика файлов см. в статье Практическое руководство. Регистрация обработчика файлов вручную.
Вот пример манифеста обработчика файлов:
{
"id": "guid",
"type": "FileHandler",
"properties": [
{ "key": "version", "value": "2" },
{ "key": "appIcon", "value": "{\"svg\":\"https://example.org/icon.svg\",\"png1x\":\"https://example.org/icon@1x.png\",\"png1.5x\":\"https://example.org/icon@1.5x.png\",\"png2x\":\"https://example.org/icon@2x.png\"}" },
{ "key": "fileTypeDisplayName", "value": "Contoso Document File" },
{ "key": "fileTypeIcon", "value": "{\"svg\":\"https://example.org/icon.svg\",\"png1x\":\"https://example.org/icon@1x.png\",\"png1.5x\":\"https://example.org/icon@1.5x.png\",\"png2x\":\"https://example.org/icon@2x.png\"}" },
{ "key": "actionMenuDisplayName", "value": "Contoso Actions" },
{ "key": "actions", "value": "json" }
]
}
Каждый манифест обработчика файлов включает указанные ниже пары "ключ-значение" в составе массива properties
.
Имя свойства | Тип | Описание |
---|---|---|
version | Строка | Указывает версию обработчика файлов. Это значение должно быть равно 2 . Обязательное свойство для обработчиков файлов версии 2.0. |
appIcon | Зашифрованная строка в формате JSON | Коллекция URL-адресов значков в разных форматах, используемых для представления приложения с обработчиком файлов. Необязательный параметр. |
fileTypeDisplayName | Строка | Описание языкового стандарта, используемого по умолчанию, для типа файлов. Необязательный параметр. |
fileTypeIcon | Зашифрованная строка в формате JSON | Коллекция URL-адресов значков в разных форматах, используемых для представления типов файлов, для которых предназначен этот обработчик. Необязательный параметр. |
actionMenuDisplayName | String | Необязательный параметр. Отображаемая строка для языкового стандарта по умолчанию, используемая при сворачивании действий, связанных с этим обработчиком файлов, в меню. |
actions | Строка в закодированном формате JSON | Коллекция действий, реализованных этим расширением обработчика файлов. Дополнительные сведения см. в разделе Указание действий . Обязательно. |
Обработчики файлов в среде выполнения
Для вызова надстройки обработчика файлов используется URL-адрес конечной точки, указанный в манифесте обработчика файлов для вызванного действия. Чтобы понять, что произошло, рассмотрим сценарий, в котором пользователь щелкает файл, чтобы просмотреть его. Если имеется зарегистрированный обработчик файлов этого типа, Office 365 вызывает приложение обработчика файлов, отправив запрос POST на URL-адрес, указанный для действия предварительного просмотра. Office 365 включит параметры активации, указывающие выбранный файл, в текст запроса POST. Другие действия, включая newFile, open и custom, можно вызвать таким же способом.
Параметры активации
В предыдущих сценариях приложению обработчика файлов требуются сведения, называемые параметрами активации, о файле, клиенте, клиенте Office 365 клиенте и т. д., чтобы работать с выбранным файлом.
Office 365 включает эти сведения в виде данных формы, отправляемых в запросе POST к конечной точке обработчика файлов, связанной с действием пользователя.
Эти параметры включаются в запрос с типом application/x-www-form-urlencoded
MIME, а URL-адрес закодирован в тексте запроса.
Среди параметров активации имеются указанные ниже параметры.
Имя параметра | Тип | Описание |
---|---|---|
cultureName | строка | Идентификатор языкового стандарта для текущего языка интерфейса пользователя. |
client | строка | Приложение Office 365, из которого был вызван обработчик файла, например SharePoint или OneDrive. |
userId | string | Имя участника-пользователя или электронный адрес для входа пользователя, вызвавшего обработчик файлов. |
domainHint | string | Строка подсказки домена, указывающая organizations или consumers . |
items | Коллекция строк JSON с URL-адресами | Коллекция URL-адресов Microsoft Graph для выбранных элементов. |
Эти значения закодированы в запросе POST в качестве значений формы.
Вот пример запроса, отправляемого в конечную точку обработчика файлов:
POST https://contoso.com/_api/filehandlers/preview
Content-Type: application/x-www-form-urlencoded
cultureName=en-us&client=OneDrive&userId=rgregg%40contoso.com&items=%5B%22https%3A%2F%2Fgraph.microsoft.com%2Fv1.0%2Fme%2Fdrive%2Fitems%2F4D679BEA-6F9B-4106-AB11-101DDE52B06E%22%5D
Примечание. URL-адреса, возвращаемые в коллекции элементов, могут быть очень длинными (но меньше максимальной длины URL-адреса — 2048 символов). В каждый URL-адрес встроен маркер, позволяющий приложению обработчика файлов получать доступ к содержимому без области разрешений с полным доверием. Однако следует гарантировать, что конечная точка обработчика файлов рассчитана на возврат длинных URL-адресов и корректно обрабатывает их.
Разработчики ASP.NET могут получать доступ к этим значениям с помощью коллекции Request.Form
. Пример:
var itemsJson = Request.Form["items"];
var itemUrls = JsonConvert.DecodeObject<string[]>(items);
При получении запроса следует выполнить кэширование параметров активации, используя либо кэш на сервере, либо файлы cookie в ответе. При выполнении начального запроса обработчика файлов приложению обработчика файлов может потребоваться перенаправить пользователя для получения маркера доступа в пользовательском интерфейсе OAuth2 Azure Active Directory. Если не сохранить параметры активации до этого перенаправления, они будут потеряны.
Вы можете изучить пример использования объекта модели данных и метода обработчика для кэширования параметров активации в файле cookie, перейдя по ссылке ниже на статью с примерами решений для C# и TypeScript.
Примеры решений для обработчика файлов
Эффективная проверка подлинности с помощью обработчиков файлов версии 2.0
После того как ваш обработчик файлов получит запрос с параметрами активации, ему потребуется получить маркер доступа, чтобы совершать вызовы API к Microsoft Graph.
Чтобы получить маркер доступа для вошедшего пользователя, приложению потребуется вызвать конечную точку проверки подлинности Azure Active Directory.
Чтобы включить функцию единого входа и не предлагать пользователю выбрать учетную запись, вы можете использовать параметр login_hint
и указать значение параметра активации userId.
В некоторых случаях обработчик файлов может предложить пользователю войти.
Если обработчик файлов выполняется в качестве действия preview
, то перенаправить интерфейс входа в объект IFRAME не удастся. Вам потребуется создать всплывающее окно входа для обработчика файлов.
Доступность обработчика файлов
В таблице ниже перечислены службы Office 365, поддерживающие обработчики файлов.
Имя службы | Обработчики файлов версии 2.0 | Обработчики файлов версии 1.0 |
---|---|---|
SharePoint Online | Общедоступная | Общедоступная версия |
OneDrive для бизнеса | Общедоступная версия | Общедоступная версия |
OneDrive персональный | Недоступно | Недоступно |
Outlook Web App | Недоступна | Общедоступная |