Я думаю, что есть несколько конструктивных соображений и, возможно, некоторые API / функциональные возможности неправильно поняты, но все же - то, что вы хотите сделать, достижимо.
Давайте начнем с того, что вы пробовали.
Office.js - это расширение API. Это специальная библиотека JavaScript, которая позволяет вам общаться с клиентами Office через специальный контекст, создаваемый этими клиентами. Вы в основном включаете это в веб-страницу и указываете своему клиенту эту веб-страницу, чтобы они могли общаться. Вам придется загрузить или установить надстройку Office из магазина. Обе эти опции требуют манифеста надстройки, в котором вы определяете конечную точку, которую клиент будет вызывать. Так что это не случайная библиотека JS, которая будет работать без контекста Office. Чтобы контекст Office присутствовал, вы должны быть в клиенте Office или в сети Office и использовать надстройку Office, в которой есть Office.js . Недостаточно просто находиться на этих страницах.
Если у вас # 1 - проблемы с аутентификацией - у вас возникнут проблемы с аутентификацией, потому что вы не аутентифицированы на этом API. Вам нужно зарегистрировать приложение, получить токен OAuth и вызвать некоторый API, например Graph, чтобы получить дополнительную информацию, которую вы ищете.
Теперь - я понимаю, что вы хотите разрабатывать что-то только для веб-сайтов и хотите использовать расширение Chrome (возможно, уже существующее для GMail). Я предложу несколько вариантов, один из которых не включает этот. Я могу придумать несколько способов сделать это.
1 - Не использовать расширение Chrome.
Надстройки Office предназначены для кроссплатформенности, что означает, что они будут работать как с веб-клиентами Office, так и с клиентами Office. Вы сможете довольно легко получить нужные данные, используя это. Подумайте о реализации своего решения с использованием фреймворка Office.js. Однако для этого потребуется активировать надстройку для сбора данных (она не может работать в фоновом режиме) и сохранить ее как активированную. Если ваше расширение Chrome пассивно собирает данные (много думал о конфиденциальности?) Или пассивно предоставляет обратную связь, это может быть не лучшим способом.
2 - Зарегистрируйте приложение для вызова Microsoft Graph.
Если вы знаете, какое электронное письмо вы хотите обработать (на основе отправителя / субъекта / и т. Д.), Вы можете зарегистрировать приложение по адресу https://apps.dev.microsoft.com.. Если вы запрашиваете доступ к почтовому ящику пользователя и пользователь предоставляет его, вы ' быть в состоянии получить доступ к электронной почте пользователя в автономном режиме. При этом вы можете обрабатывать все, что вам нужно, и когда вы считаете, что все в порядке (либо путем определения домена, либо пользователем, открывающим Chrome), вы можете уведомить их через расширение Chrome. Это можно сделать несколькими способами, но самым простым из них будут розетки, которые я себе представлю.
3 - только для текущего почтового отправления
Все запросы пользовательского интерфейса могут завершиться завтра, потому что то, что вы пытаетесь сделать, недокументировано. Однако URL-адрес при просмотре определенного элемента содержит идентификатор.
Вы можете попробовать зарегистрировать приложение так же, как в шаге 2 (добавить области доступа к почте) и запросить график для этого идентификатора, чтобы получить его во время выполнения. Вы должны быть в состоянии запустить этот запрос из вашего расширения Chrome. Так было бы как
- Создать приложение
- Когда пользователь использует расширение Chrome + Outlook - запрос на аутентификацию
- После аутентификации пользователя сохраните токен обновления + токен доступа.
- Получить идентификатор элемента из URL.
- Вызовите Microsoft Graph с идентификатором элемента, используя маркер доступа для аутентификации.
- Сведения об элементе должны быть возвращены в формате json.
Когда пользователь повторно посещает домен Outlook, вы можете обновить токен доступа, используя токен обновления.