Не так давно появилась задача бизнеса шарить файлы с
партнерами и что бы всем партнерам приходили оповещения о изменении файла.
Мы взвесили все за и против и решили, что делится файлами
будет удобнее чем заводить внешних пользователей себе, тратить на них лицензию.
Да и первый вход внешнего сотрдника через создание новой записи 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | { "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
Комментариев нет:
Отправить комментарий