Не так давно появилась задача бизнеса шарить файлы с
партнерами и что бы всем партнерам приходили оповещения о изменении файла.
Мы взвесили все за и против и решили, что делится файлами
будет удобнее чем заводить внешних пользователей себе, тратить на них лицензию.
Да и первый вход внешнего сотрдника через создание новой записи 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




























Комментариев нет:
Отправить комментарий