Группа

Путь /{group-id}

Представляет группу Workplace. Узел /{group-id} возвращает отдельную группу.

Группы для сотрудничества

При доступе к группам для сотрудничества необходимо помнить о перечисленных далее особенностях.

  • Контент группы могут считывать любые приложения интеграций, установленных в компании, которая входит в группу для сотрудничества.
  • Группы для сотрудничества указываются в списках в сообществах или в группах вместе с другими группами:
    • для обозначения группы для сотрудничества можно использовать поле цели purpose, установив для него значение WORK_MULTI_COMPANY.
  • Можно отправлять запросы на получение участников группы, однако если приложение относится к компании, к которой пользователь не принадлежит, будут видны только id, name и picture.
  • Интеграции, имеющие разрешение на управление группой, могут добавлять и удалять участников группы для сотрудничества:
    • интеграции могут добавлять и удалять только пользователей, являющихся участниками сообщества, в котором установлена интеграция;
    • интеграции могут добавлять и удалять пользователей, только если один из администраторов группы является участником сообщества, в котором установлена интеграция.
  • Интеграции, имеющие разрешение на управление контентом группы, могут удалять контент в группе для сотрудничества в следующих случаях:
    • если контент принадлежит участнику сообщества приложения;
    • если участник сообщества приложения является администратором группы.
  • Публикация в группах для сотрудничества в настоящее время недоступна.
  • Группы для сотрудничества можно выбирать в настройках области действия группы для интеграций.
  • В группах для сотрудничества нельзя упоминать ботов.

Чтение

Чтобы получить информацию о группе, отправьте запрос Graph API GET к /{group-id}.

Разрешения

Для чтения узла Group требуется разрешение на чтение контента группы.

Поля

Имя поляОписаниеТип данных

id

ID группы.

string

cover

Информация о фото обложки группы.

CoverPhoto

cover_url

URL изображения обложки группы.

string

description

Краткое описание группы.

string

icon

URL значка группы.

url

is_workplace_default

Указывает, является ли группа группой Workplace по умолчанию (только чтение).

boolean

is_community

Указывает, является ли группа сообществом и может ли она содержать другие группы (только чтение).

boolean

name

Название группы.

string

owner

Участник, создавший группу.

User

privacy

Настройка конфиденциальности группы. Возможные значения:

  • CLOSED;
  • OPEN;
  • SECRET.

string

updated_time

Время последнего изменения группы. Это могут любые изменения свойств группы, публикаций или комментариев.

datetime

archived

Указывает, была ли группа архивирована.

boolean

post_requires_admin_approval

Указывает, требуется ли для публикаций одобрение администратора.

boolean

purpose

Цель группы.

enum {WORK_ANNOUNCEMENT, WORK_FEEDBACK, WORK_TEAMWORK, WORK_SOCIAL, WORK_MULTI_COMPANY}


Упразднено: WORK_FOR_SALE, WORK_TEAM

post_permissions

Указывает, требуется ли для публикации одобрение администратора.

enum {NONE, ADMIN_ONLY}

join_setting

Указывает, как в группу могут вступать новые участники.

enum {NONE, ANYONE, ADMIN_ONLY}

sorting_setting

Указывает порядок публикаций, возвращаемых для границ контекста /feed. Значение по умолчанию: CHRONOLOGICAL.

enum {RECENT_ACTIVITY, CHRONOLOGICAL}

is_official_group

Указывает, является ли группа официальной группой Workplace. В продукте рядом с официальным названием группы появится значок официальной группы.

boolean

Публикация

Эту границу контекста нельзя использовать для публикаций. Чтобы создать группу, отправьте запрос на публикацию к границе контекста /community/groups.

Удаление

Эту границу контекста нельзя использовать для удаления группы. Группа будет удалена автоматически при исключении ее последнего участника.

Обновление

Чтобы обновить группу, выполните вызов Graph API POST к конечной точке /{group-id}, указав в теле запроса значения для полей, которые нужно обновить.

Разрешения

Для обновления узла группы необходимо разрешение на управление группами.

Границы контекста

Имя границыОписание

/admins

Администраторы группы Workplace. В Workplace поддерживается добавление и удаление администраторов. См. примеры ниже.

/albums

Фотоальбомы группы.

/auto_membership_rules

Правила автоматического добавления участников в группу.

/docs

Документы группы.

/events

События группы.

/feed

Публикации группы Workplace в виде ленты.

/files

Файлы, которыми поделились в группе Workplace.

/member_requests

Ожидающие подтверждения запросы на участие в группе (для групп, в которых включено одобрение запросов).

/members

Участники группы. В этой границе контекста содержится следующая информация:

  • administrator — указывает, что этот человек является администратором группы;
  • joined — дата вступления в группу;
  • moderator — указывает, что этот человек является модератором группы;
  • added_by — указывает, кто добавил этого пользователя в группу.

/moderators

Модераторы группы Workplace.

/pinned_posts

Прикрепленная публикация группы.

/groups

Список всех дочерних групп (применимо только к группам, которые также являются сообществами).

Примеры

Получение ID группы, ее названия, статуса архивации и настроек конфиденциальности:

GET graph.facebook.com
  /{group-id}?fields=id,name,archived,privacy

Перенос группы в архив:

POST graph.facebook.com
  /{group-id}?archive=true

Получение имен, ID и дат вступления участников группы:

GET graph.facebook.com
  /{group-id}/members?fields=name,id,joined

Получение администраторов и модераторов в одном вызове:

GET graph.facebook.com
  /{group-id}?fields=admins,moderators

Получение документов группы:

GET graph.facebook.com
  /{group-id}/docs

Получение публикаций группы:

GET graph.facebook.com
  /{group-id}/feed

Получение публикаций в порядке последнего обновления:

GET graph.facebook.com
  /{group-id}/feed?sorting_setting=RECENT_ACTIVITY

Параметры:

sorting_setting.

Если установлено значение RECENT_ACTIVITY, разрешает упорядочивать публикации по времени последнего обновления, а не по времени создания. Работу по умолчанию можно задать явным образом, указав значение CHRONOLOGICAL. Обновлениями считаются любые изменения публикации, комментарии или реакции.

Получение публикаций группы с дополнительными вложениями, например видео, изображениями, файлами или опросами:

GET graph.facebook.com
  /{group-id}/feed?fields=attachments

Варианты ответов на опрос перечислены в нисходящем порядке (от ответов с наибольшим количеством голосов к ответам с наименьшим).

Получение списка участников группы и дат их вступления в группу:

GET graph.facebook.com
  /{group-id}/members?fields=name,joined

Добавление участника в группу по ID:

POST graph.facebook.com
  /{group-id}/members/{member-id}

Добавление участника в группу по электронному адресу:

POST graph.facebook.com
  /{group-id}/members?email=michael%40example.com

Указывая электронные адреса в URL запроса, используйте кодированные URL. Пример: michael@example.com кодируется как michael%40example.com.

При удалении из группы последнего участника группа будет удалена.

Удаление участника из группы по ID:

DELETE graph.facebook.com
  /{group-id}/members/{member-id}

Удаление участника из группы по электронному адресу:

DELETE graph.facebook.com
  /{group-id}/members?email=michael%40example.com

Указывая электронные адреса в URL запроса, используйте кодированные URL. Пример: michael@example.com кодируется как michael%40example.com.

Присвоение участнику статуса администратора группы:

POST graph.facebook.com
  /{group-id}/admins/{user-id}

Перевод администратора в статус обычного участника:

DELETE graph.facebook.com
  /{group-id}/admins/{user-id}

Создание мероприятия в группе:

POST graph.facebook.com
  /{group-id}/events
  ?name=New+Event
  &start_time=2017-03-02T14:00:04+00:00
  &end_time=2017-03-02T15:00:04+00:00
  &description=Test+Description
  &location=Boardroom

Загрузка нового фото в виде двоичного файла:

POST graph.facebook.com
  /{group-id}/photos?source={image-data}

Загрузка нового фото по URL:

POST graph.facebook.com
  /{group-id}/photos?url={image-data}

Создание публикаций в группе с вложенными изображениями или видео:

POST graph.facebook.com
  /{group-id}/feed?attached_media=[{"media_fbid":"{photo-id}"},{"media_fbid":"{photo-id}"}]

Параметры:

attached_media.

Используется для фото и видео. Массив элементов media_fbids в квадратных скобках. Поддерживаются следующие форматы: jpeg, bmp, png, gif, tiff. Подробнее о форматах изображений см. в этой статье. Информацию о поддерживаемых форматах видео см. в этой статье. Чтобы получить media_fbids для изображений, сначала опубликуйте неопубликованные фото в https://graph.facebook.com/me/photos, следуя инструкциям из этой статьи. Чтобы получить media_fbids для видео (в том числе для анимированных gif), сначала опубликуйте видео в https://graph.facebook.com/me/videos?no_story=true.

Если задать для параметра no_story значение true, это отменит публикацию истории в ленте, которая создается автоматически в профиле пользователя при загрузке видео через ваше приложение.

Создание публикаций в группе с вложенными файлами:

POST graph.facebook.com
  /{group-id}/feed?files=[{file-id},{file-id}]

Параметры:

files.

Используется для файлов. Массив элементов file_ids (без скобок). Управление версиями файлов на данный момент не поддерживается. Чтобы обновить файлы, удалите их из списка вложений и загрузите новые. Поддерживаются следующие форматы файлов:

  • документы — .pdf, .csv, .tsv, .docx, .pptx, .xlsx;
  • изображения — .jpeg, .png;
  • видео — .mp4;
  • архивы — .rar, .zip.

Чтобы получить file_ids, сначала опубликуйте файлы в https://graph.facebook.com/group_file_revisions. Публиковать исходные файлы можно непосредственно с компьютера.

Параметры attached_media и files нельзя использовать в одном вызове API. Это совпадает с работой инструмента создания групп, в котором используются отдельные параметры для загрузки фото/видео и файлов.

Обновление разрешений на публикацию, настроек вступления, цели и настроек одобрения публикаций:

POST graph.facebook.com
  /{group-id}/?post_permissions=NONE&join_setting=ADMIN_ONLY&purpose=WORK_SOCIAL&post_requires_admin_approval=false

Получение реакций и комментариев на прикрепленную публикацию:

GET graph.facebook.com
  /{group-id}/pinned_posts?fields=reactions,comments

Проверка, является ли группа сообществом:

GET graph.facebook.com
  /{group-id}?fields=is_community

Получение правил добавления участников в группу и удаления из нее:

GET graph.facebook.com
  /{group-id}/auto_membership_rules

Пример ответа (JSON):

{
  "data": [
    {
      "conditions": [
        {
          "field": "TITLE",
          "operator": "CONTAINS",
          "values": [
            "sales"
          ]
        }
      ],
      "id": RULE_ID
    }
  ],
  ...
}

Удаление правила автоматического добавления и удаления участников для группы:

DELETE graph.facebook.com
  /RULE_ID

Применение правила добавления и удаления участников для группы:

POST graph.facebook.com
  /{group-id}/auto_membership_rules

Пример полезных данных:

{
    "conditions": [
        {
            "field": "LOCATION",
            "operator": "CONTAINS",
            "values": ["London", "San Francisco"]
        }
    ]
  }

В случае ошибки этот вызов API может добавить в группу тысячи пользователей, поэтому очень важно использовать его корректно и внимательно проверять все данные перед вызовом.

Получение ID группы и статуса официальной группы:

GET graph.facebook.com
  /{group-id}?fields=id,is_official_group

Обновление статуса официальной группы:

POST graph.facebook.com
  /{group-id?is_official_group={FALSE | TRUE}