Не так давно появилась задача бизнеса шарить файлы с
партнерами и что бы всем партнерам приходили оповещения о изменении файла.
Мы взвесили все за и против и решили, что делится файлами
будет удобнее чем заводить внешних пользователей себе, тратить на них лицензию.
Да и первый вход внешнего сотрдника через создание новой записи MS, подтверждение не так
удобен пользователям.
Если достум через Share link не сложный как для бизнеса так и для
внешнего сотрудника, то оповещение внешних пользователей о том, что изменился
файл в расшариной папке задача оказалась не совсем простая.
Оснойвой решения была статья https://cann0nf0dder.wordpress.com/2018/04/04/externally-sharing-getsharinginformation-rest-api/.
Я настроил процес который брал все внешние email начиная от самого файла и
заканчивая верхней папкой. Проект запустили, но у бизнеса возникла потребность
шарить с новыми партнерами. И вся сложность в том, что уже стало сложно
отслеживать с кем уже расшарили папку, а с кем нет, ведь внешних пользователей
100+.
Как решение было создать новый List
(ExternalEmails) и в
нем настроить WorkFlow которое будет отправлять приглашения при добавлении новой
почты.
Посмотрев Network я увидел запрос
/_api/web/Lists(@a1)/GetItemById(@a2)/ShareLink?@a1=%27 ListGuid %27&@a2=%27 Item Id %27
Json
{"request": { "createLink":true, "settings":{ "linkKind":6, "expiration":null, "role":2, "restrictShareMembership":true, "updatePassword":false, "password":"" }, "peoplePickerInput":"[{ "Key":"externalEmail@mail.ru", "DisplayText":"externalEmail@mail.ru", "IsResolved":true, "Description":"externalEmail@mail.ru", "EntityType":"", "EntityData":{ "SPUserID":"externalEmail@mail.ru", "Email":"externalEmail@mail.ru", "IsBlocked":"False", "PrincipalType":"UNVALIDATED_EMAIL_ADDRESS", "AccountName":"externalEmail@mail.ru", "SIPAddress":"externalEmail@mail.ru", "IsBlockedOnODB":"False" }, "MultipleMatches":[], "ProviderName":"", "ProviderDisplayName":"" }]", "emailData":{ "body":"", "subject":"" } } }
В процессе сложнее всего создать вложенность объектов JSON.
Весь процесс выглядит так
переменная url
далее переменная EntityData
Комментариев нет:
Отправить комментарий