Мы упраздняем Workplace from Meta. Вы сможете пользоваться Workplace до 31 августа 2025 г. Подробнее см. в нашем Справочном центре.
Системный администратор Workplace может управлять возможностями и функциями, доступными в рамках отдельных интеграций, создавая приложения и предоставляя им определенные разрешения. Каждое приложение получает название в соответствии с услугами, которые с ним связаны. С приложениями связываются уникальные маркеры доступа и разрешения, от которых зависит, какую именно информацию это приложение может считывать и записывать.
В этом руководстве подробнее описана модель приложений и разрешений.
Каждому приложению Workplace можно предоставить собственный набор разрешений, позволяющих контролировать доступные ему функции Graph API и Account Management API.
Разрешения, которое вы предоставляете новому приложению, действуют для всех аккаунтов в пределах вашего сообщества. Владельцам аккаунтов не требуется предоставлять приложению какие-либо дополнительные разрешения, чтобы воспользоваться его функциями. В этом заключается отличие от модели разрешений Facebook, где каждый пользователь отдельно предоставляет приложению разрешения при входе.
Ниже приведен полный список всех разрешений, которые доступны для интеграций, а также сведения о возможном использовании каждого из них.
Разрешение | Описание |
---|---|
Чтение контента группыЧтение публикаций и комментариев в выбранных группах. read_group | С помощью этого разрешения можно создать интеграцию, которая считывает весь контент из выбранных групп. Если ваша интеграция будет выступать в роли бота в группе, используйте вместо этого разрешение бота упоминаний. |
Управление контентом группыУправление публикациями и комментариями в выбранных группах. write_group | С помощью этого разрешения можно создать интеграцию, которая публикует в группах определенный контент, например еженедельный отчет из какой-либо внутренней службы или уведомления о статусе службы от бота. |
Чтение хроники пользователяПросмотр публикаций, размещаемых участниками группы в своих хрониках. read_user_feed | С помощью этого разрешения можно создать интеграцию, которая:
|
Управление хроникой пользователяРазмещение публикаций и комментариев в хронике любого пользователя группы. write_user_feed | С помощью этого разрешения можно реализовать интеграцию для создания или редактирования публикации в хронике участника группы. |
Бот упоминанийПросмотр публикации, в которой бот был упомянут, и ответ на комментарии. bot_mention | Это разрешение используется для создания ботов в группах Workplace. |
Управление группамиСоздание, редактирование и удаление выбранных групп и их участников. manage_group | С помощью этого разрешения можно создать интеграцию, которая автоматически генерирует группы и добавляет в них участников на основании организационной структуры или проектных групп. Если интеграция с этим разрешением предназначена для работы с какими-то конкретными группами, она не сможет создавать новые. |
Управление аккаунтамиПодготовка, обновление и деактивация аккаунтов через Account Management API. manage_accounts | С помощью этого разрешения можно создать интеграцию со службой подготовки аккаунтов, например с поставщиком услуг идентификации, инструментом Active Directory Sync или пользовательским клиентом Account Management API. Активировав это разрешение, вы также сможете включить разрешение, позволяющее автоматически приглашать пользователей в Workplace после их добавления с использованием этой интеграции. |
Управление значкамиНазначение значков пользователям в сообществе Workplace. manage_badges | С этим разрешением интеграция сможет:
|
Чтение электронных адресов пользователейПросмотр электронного адреса любого пользователя группы. read_user_email | Это разрешение позволяет получить адрес электронной почты, связанный с аккаунтом пользователя Workplace. |
Чтение рабочего профиляДоступ к информации о пользователях из каталога в режиме только чтения. read_user_work_profile | Позволяет приложению получать сведения об отделе, подразделении, организации, основном адресе, основном номере телефона, должности и поле пользователя. |
Чтение организационной схемыДоступ к информации о руководителях и подчиненных пользователей в режиме только чтения. read_user_org_chart | Позволяет приложению получать сведения о руководителях и подчиненных пользователей. |
Отправка сообщения любому пользователюОбмен сообщениями в чате с любым участником сообщества. message | Это разрешение используется для создания ботов в рабочем чате. |
Чтение всех сообщенийЧтение сообщений чата от любого участника сообщества. read_all_messages | С помощью этого разрешения можно реализовать интеграцию соответствия правилам, которая будет контролировать допустимость использования Чата Workplace. |
Удаление сообщений чатаdelete_messages | С помощью этого разрешения можно позволить приложению удалять сообщения чата из переписки определенного пользователя (т. е. реализовать политику удержания данных). |
Чтение журналов безопасностиДоступ к подробным сведениям о событиях безопасности, в том числе попыткам входа и запросам на сброс пароля. receive_security_logs | С помощью этого разрешения можно реализовать интеграцию соответствия правилам, которая будет контролировать допустимость использования Чата Workplace. |
Выход из системыЗавершение всех активных сеансов участников. logout | С помощью этого разрешения можно завершить сеанс пользователя в Workplace |
Создание предпросмотров ссылокПредпросмотр с форматированием для ссылок, публикуемых в Workplace. link_unfurling | Приложения с этим разрешением могут генерировать авторизованные предпросмотры для ссылок, публикуемых в Workplace. |
Управление рабочими профилямиЧтение и обновление рабочих профилей в Workplace. manage_profiles | Это разрешение объединяет в себе разрешения на чтение read_user_work_profile и read_user_org_chart. Приложения с этим разрешением также могут обновлять данные аккаунта (имя, отдел, подразделение, должность, организацию, номера телефонов и т. п.). |
Подготовка аккаунтов пользователейПодготовка аккаунтов в Workplace. provision_accounts | Приложения с этим разрешением могут выполнять подготовку, активацию и удаление аккаунтов Workplace (если они не заняты). Это разрешение также позволяет обновлять флаг активности, поля электронного адреса, имени, даты найма и флаг приглашения участника. |
Чтение данных об участии в группахПолучение списка участников группы и списка групп, участником которых является пользователь. list_group_members | Приложения с этим разрешением могут запрашивать список участников определенной группы. Кроме того, они могут получать списки групп, участниками которых являются определенные пользователи. |
Управление контентом Библиотеки знанийСоздание, редактирование и удаление важной информации о компании в Библиотеке знаний. manage_knowledge_library | Приложения с этим разрешением могут создавать и изменять контент в Библиотеке знаний. С этим разрешением интеграция сможет:
|
Чтение контента Библиотеки знанийЧтение важной информации о компании в Библиотеке знаний. read_knowledge_library | Приложения с этим разрешением получают доступ к контенту Библиотеки знаний. С этим разрешением интеграция сможет:
|
Экспорт данных о сотрудникахЭкспорт списка текущих сотрудников и данных об их действиях в формате CSV. export_employee_data | Приложения с этим разрешением могут запланировать задание на экспорт данных, в результате выполнения которого будет сгенерирован файл CSV со списком всех пользователей Workplace. Этот файл также содержит данные пользователей, в том числе информацию о последних действиях в Workplace. |
Бот для группового чатаБоты могут взаимодействовать с групповым чатом. bot_group_chat | Приложения с этим разрешением могут взаимодействовать с пользователями группового чата. С помощью этого разрешения можно реализовать интеграцию, которая создает групповой чат с несколькими участниками или управляет им. Это разрешение зависит от разрешения |
Управление опросамиСоздание, обновление, удаление и чтение настроек опроса manage_surveys | Приложения с этим разрешением могут создавать, обновлять, удалять и читать настройки опроса. |
Чтение сведений об опросеЧтение настроек опроса и получение связанных с ним обновлений Webhooks. read_surveys | Приложения с этим разрешением могут читать настройки опроса и получать связанные с ним обновления Webhooks. |
Чтение сведений об опросеЧтение настроек опроса и получение связанных с ним обновлений Webhooks. read_surveys | Приложения с этим разрешением могут читать настройки опроса и получать связанные с ним обновления Webhooks. |
Чтение сведений о группе пользователейЧтение сведений о группе пользователей. read_people_sets | Приложения с этим разрешением могут читать настройки динамических групп пользователей и подписываться на связанные с ними обновления. |
Управление группами пользователейУправление группами пользователей. manage_people_sets | Приложения с этим разрешением могут создавать, обновлять и удалять группы пользователей в Workplace. |
Чтение важных публикацийЧтение важных публикаций. read_important_posts | Позволяет интеграции получать информацию о продвижении важных публикаций, как активных, так и с истекшим сроком действия. |
Управление важными публикациямиУправление важными публикациями. manage_important_posts | Позволяет интеграции помечать публикации группы как важные (такие публикации отображаются в ленте сверху) и заранее останавливать продвижение важных публикаций. |
Удаление информации профиляУдаление персональной информации для деактивированных пользователей. remove_profile_information | Позволяет интеграции удалять поля профиля (например, имя и изображение профиля) деактивированных пользователей Workplace. |
Некоторые разрешения можно предоставлять интеграциям только для заданного набора групп. Благодаря этому у интеграции будет доступ только к определенному массиву контента.
Например, можно позволить интеграции публиковать уведомления только в собственной группе команды или разрешить интеграции приложения для сотрудников считывать контент только из определенных открытых групп.
Задать разрешения уровня группы для пользовательской интеграции можно с помощью панели доступа к группам в диалоге редактирования интеграции.
На уровне группы можно задать следующие разрешения:
Интеграцию можно настроить таким образом, чтобы разрешения уровня группы применялись для всех групп, определенных групп, выбранных системным администратором, или на усмотрение администраторов соответствующих групп.
Если выбран режим, в котором администраторы групп могут включать для них интеграции, администратор группы увидит новую вкладку Интеграции на экране Управление группой, где сможет включить нужные интеграции для своей группы.
При создании нового приложения для Workplace генерируется маркер доступа для использования с Graph API, Account Management API или Webhooks.
Этот маркер доступа отображается только один раз, поэтому его необходимо надежно сохранить для дальнейшего использования в коде.
Срок действия маркеров приложений в Workplace никогда не истекает, и их не требуется обновлять, если только они не были сброшены вручную. После редактирования разрешений, предоставленных определенному приложению, существующий маркер остается действительным. Генерировать новый не требуется.
Если вам потребуется сделать маркер недействительным, его можно сбросить, нажав кнопку Сбросить маркер доступа в диалоге Редактирование приложения. Будет сгенерирован и отображен новый маркер, а существующий сразу же станет недействительным.
Маркеры доступа очень функциональны. Они служат для доступа к данным вашей компании в Workplace. При создании приложения определите минимальный набор разрешений, необходимый для реализации функций интеграции, и не предоставляйте разрешений, которые не нужны.
При сохранении маркеров или добавлении их в репозитории кода уделите самое пристальное внимание их защите от несанкционированного доступа.
Никогда не сохраняйте рабочие маркеры доступа в публичных репозиториях кода.
Учетные данные для доступа к API должны храниться и использоваться только в вашей собственной серверной среде и не должны копироваться или передаваться за ее пределы (например, в мобильные приложения или браузерные клиенты).
Для дополнительной защиты интеграции реализуйте белый список IP-адресов, чтобы ограничить область использования маркеров только серверами, адреса которых в него входят.
Если пользовательская интеграция не совершает никаких вызовов с использованием определенного разрешения в течение 30 дней, это разрешение удаляется. После того как это произойдет для пользовательской интеграции в первый раз, такое удаление можно будет запретить.
Если у вас настроена действительная подписка на Webhooks, отправляемые объекты Webhooks учитываются в качестве случаев использования соответствующего разрешения.
Срок действия маркеров приложений для Workplace не ограничен. Для дополнительной защиты в пользовательской интеграции можно настроить требование проверочного кода на базе секрета приложения. Если соответствующий параметр включен, вызовы API выполняются только из серверного кода, причем помимо маркера доступа в вызове потребуется указать проверочный код на базе секрета приложения, срок действия которого ограничен.
Чтобы сгенерировать проверочный код с ограниченным сроком действия, необходимо объединить маркер с меткой времени Unix, разделив их символом |
, а затем создать из полученной строки хэш SHA-256, используя в качестве ключа секрет приложения. Вот пример на PHP:
$appsecret_proof = hash_hmac('sha256', $access_token.'|'.time(), $app_secret);
Некоторые операционные системы и языки программирования возвращают метку времени в виде числа с плавающей запятой. Перед вычислением проверочного кода на базе секрета приложения не забудьте преобразовать его в целое. Некоторые языки программирования возвращают хэш в виде объекта-отпечатка. Не забудьте преобразовать его в шестнадцатеричный объект.
Чтобы выполнить вызов API с использованием проверочного кода на базе секрета приложения, передайте сгенерированный хэш в параметре appsecret_proof
вместе с параметром appsecret_time
, задав в качестве его значения метку времени, которая использовалась при хэшировании секрета приложения, а также маркер доступа.
GET https://graph.facebook.com/v2.9/community/groups? &access_token={access-token} &appsecret_proof={appsecret_proof} &appsecret_time={appsecret_time}
Срок действия проверочного кода на базе секрета приложения с меткой времени истекает через пять минут, поэтому при выполнении каждого вызова Graph API рекомендуется сразу генерировать новый проверочный код.
Postman — это инструмент, который широко используется для работы с веб-API. Вы можете воспользоваться Postman для исследования возможностей Workplace API, однако при этом возникает сложность, связанная с параметром $appsecret_proof
: это значение рассчитывается и действует в течение пяти минут, поэтому было бы проще, если бы Postman мог генерировать его в момент запроса. Это можно реализовать с помощью выполняемых перед запросом скриптов и параметров Postman. В качестве отправной точки можно воспользоваться таким скриптом:
// Add to Postman's Pre-request Script Tab var access_token = "replace-me"; var app_secret = "replace-me"; var time = (new Date().getTime()/1000|0); postman.setEnvironmentVariable("access_token", access_token) postman.setEnvironmentVariable("appsecret_time", time); postman.setEnvironmentVariable("appsecret_proof", CryptoJS.HmacSHA256(access_token + '|' + time, app_secret));