Pobierz i monitoruj kanały aktywności projektów za pomocą API Blue.


Pobierz Aktywność Projektu

Zapytanie activityList zapewnia dostęp do kompleksowego kanału aktywności dla projektów i firm. Aktywności są automatycznie generowane, gdy użytkownicy wykonują działania, takie jak tworzenie zadań, komentarzy lub wprowadzanie zmian w projekcie.

Podstawowy Przykład

query ProjectActivity {
  activityList(
    projectId: "your-project-id"
    first: 20
    orderBy: createdAt_DESC
  ) {
    activities {
      id
      category
      html
      createdAt
      createdBy {
        id
        name
        email
      }
      project {
        id
        name
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
    totalCount
  }
}

Zaawansowany Przykład z Filtrowaniem

query FilteredActivity {
  activityList(
    companyId: "your-company-id"
    categories: [CREATE_TODO, MARK_TODO_AS_COMPLETE, CREATE_COMMENT]
    userIds: ["user1-id", "user2-id"]
    startDate: "2024-01-01T00:00:00Z"
    endDate: "2024-12-31T23:59:59Z"
    first: 50
    orderBy: createdAt_DESC
  ) {
    activities {
      id
      uid
      category
      html
      createdAt
      updatedAt
      createdBy {
        id
        name
        email
      }
      affectedBy {
        id
        name
      }
      todo {
        id
        title
      }
      comment {
        id
        text
      }
      project {
        id
        name
        slug
      }
    }
    pageInfo {
      hasNextPage
      hasPreviousPage
      startCursor
      endCursor
    }
    totalCount
  }
}

Parametry Wejściowe

Zapytanie activityList

Parametr Typ Wymagany Opis
companyId String Nie Filtrowanie aktywności według ID firmy lub slug
projectId String Nie Filtrowanie aktywności według ID projektu lub slug
userId String Nie Filtrowanie aktywności według konkretnego użytkownika
userIds [String!] Nie Filtrowanie aktywności według wielu użytkowników
tagIds [String!] Nie Filtrowanie aktywności według tagów zadań
categories [ActivityCategory!] Nie Filtrowanie według konkretnych typów aktywności
startDate DateTime Nie Filtrowanie aktywności od tej daty
endDate DateTime Nie Filtrowanie aktywności do tej daty
skip Int Nie Pomiń tę liczbę rekordów (stronicowanie offsetowe)
first Int Nie Zwróć pierwsze N rekordów (stronicowanie kursorowe)
last Int Nie Zwróć ostatnie N rekordów (stronicowanie kursorowe)
after String Nie Zwróć rekordy po tym kursorze
before String Nie Zwróć rekordy przed tym kursorem
orderBy ActivityOrderByInput Nie Kolejność sortowania wyników

Wartości ActivityCategory

System automatycznie śledzi różne typy aktywności:

Kategoria Opis
CREATE_TODO Utworzono nowe zadanie
MARK_TODO_AS_COMPLETE Zadanie oznaczone jako ukończone
CREATE_COMMENT Dodano komentarz
CREATE_DISCUSSION Rozpoczęto dyskusję
CREATE_STATUS_UPDATE Opublikowano aktualizację statusu
CREATE_TODO_LIST Utworzono nową listę zadań
MOVE_TODO Zadanie przeniesiono między listami
COPY_TODO Zadanie skopiowano
ADD_USER_TO_PROJECT Użytkownik został dodany do projektu
REMOVE_USER_FROM_PROJECT Użytkownik został usunięty z projektu
ARCHIVE_PROJECT Projekt został zarchiwizowany
UNARCHIVE_PROJECT Projekt został odarchiwizowany
CREATE_INVITATION Użytkownik został zaproszony
ACCEPT_INVITATION Zaproszenie zostało zaakceptowane
CREATE_CUSTOM_FIELD Utworzono pole niestandardowe
RECEIVE_FORM Otrzymano zgłoszenie formularza

Wartości ActivityOrderByInput

Wartość Opis
createdAt_DESC Najnowsze najpierw (domyślnie)
createdAt_ASC Najstarsze najpierw
updatedAt_DESC Najnowsze zaktualizowane najpierw
updatedAt_ASC Najmniej niedawno zaktualizowane najpierw
category_ASC Alfabetycznie według kategorii
category_DESC Odwrotnie alfabetycznie według kategorii

Pola Odpowiedzi

Typ Aktywności

Pole Typ Opis
id ID! Unikalny identyfikator aktywności
uid String! Alternatywny unikalny identyfikator
category ActivityCategory! Typ aktywności, która miała miejsce
html String! Bogaty opis HTML aktywności
createdAt DateTime! Kiedy miała miejsce aktywność
updatedAt DateTime! Kiedy aktywność została ostatnio zaktualizowana
createdBy User! Użytkownik, który wykonał działanie
affectedBy User Użytkownik, który został dotknięty działaniem
company Company Powiązana firma
project Project Powiązany projekt
todo Todo Powiązane zadanie (jeśli dotyczy)
todoList TodoList Powiązana lista zadań (jeśli dotyczy)
comment Comment Powiązany komentarz (jeśli dotyczy)
discussion Discussion Powiązana dyskusja (jeśli dotyczy)
statusUpdate StatusUpdate Powiązana aktualizacja statusu (jeśli dotyczy)
metadata String Dodatkowe metadane aktywności

Odpowiedź ActivityList

Pole Typ Opis
activities [Activity!]! Tablica rekordów aktywności
pageInfo PageInfo! Informacje o stronicowaniu
totalCount Int! Całkowita liczba aktywności pasujących do filtrów

Aktualizacje Aktywności w Czasie Rzeczywistym

Subskrybuj zmiany aktywności za pomocą subskrypcji subscribeToActivity:

subscription ActivityUpdates($companyId: String!, $projectId: String) {
  subscribeToActivity(companyId: $companyId, projectId: $projectId) {
    mutation
    node {
      id
      category
      html
      createdAt
      createdBy {
        id
        name
        email
      }
      project {
        id
        name
      }
    }
  }
}

Parametry Subskrypcji

Parametr Typ Wymagany Opis
companyId String Nie Subskrybuj aktywności w całej firmie
projectId String Nie Subskrybuj aktywności konkretnego projektu

Subskrypcja powiadomi Cię o:

  • ACTIVITY_CREATED - Nowe aktywności
  • ACTIVITY_UPDATED - Zmodyfikowane aktywności
  • ACTIVITY_DELETED - Usunięte aktywności

Filtrowanie i Prywatność

Automatyczne Filtrowanie

Kanał aktywności automatycznie filtruje wyniki na podstawie:

  • Ustawień Projektu: Pokazuje tylko aktywności z projektów z włączonym śledzeniem aktywności
  • Uprawnień Użytkownika: Różne role użytkowników widzą różne typy aktywności
  • Członkostwa w Projekcie: Użytkownicy widzą tylko aktywności z projektów, do których mają dostęp
  • Członkostwa w Firmie: Aktywności są ograniczone do firm użytkownika

Rozważania dotyczące Prywatności

  • Użytkownicy z rolą CLIENT mają ograniczoną widoczność niektórych działań administracyjnych
  • Aktywności respektują ustawienia prywatności na poziomie projektu
  • Wrażliwe operacje mogą nie generować publicznych aktywności

Odpowiedzi na Błędy

Nieprawidłowy Projekt/Firma

{
  "errors": [{
    "message": "Project not found",
    "extensions": {
      "code": "NOT_FOUND"
    }
  }]
}

Odrzucone Uprawnienia

{
  "errors": [{
    "message": "You do not have permission to view activities for this project",
    "extensions": {
      "code": "FORBIDDEN"
    }
  }]
}

Nieprawidłowy Zakres Dat

{
  "errors": [{
    "message": "Start date must be before end date",
    "extensions": {
      "code": "BAD_USER_INPUT"
    }
  }]
}

Najlepsze Praktyki

  1. Używaj Stronicowania: Kanały aktywności mogą być duże, zawsze używaj parametru first
  2. Filtrowanie według Projektu: Kanały aktywności w całej firmie mogą być przytłaczające
  3. Aktualizacje w czasie rzeczywistym: Używaj subskrypcji do na żywo kanałów aktywności
  4. Filtrowanie Dat: Używaj zakresów dat do analizy aktywności historycznych
  5. Filtrowanie Kategorii: Filtrowanie według konkretnych typów aktywności dla skoncentrowanych kanałów
  6. Filtrowanie Użytkowników: Śledź aktywności konkretnych członków zespołu za pomocą userIds

Ważne Uwagi

  • Aktywności są automatycznie generowane i nie mogą być ręcznie tworzone za pomocą API
  • Tekst aktywności używa formatowania HTML do bogatego wyświetlania
  • Pole text jest przestarzałe na rzecz html
  • Aktywności są trwale przechowywane i zapewniają pełny ślad audytowy
  • Subskrypcje w czasie rzeczywistym wymagają uwierzytelnienia połączenia WebSocket

Asystent AI

Odpowiedzi są generowane przy użyciu sztucznej inteligencji i mogą zawierać błędy.

Jak mogę Ci pomóc?

Zapytaj mnie o cokolwiek dotyczącego Blue lub tej dokumentacji.

Wciśnij Enter, aby wysłać • Shift+Enter, aby dodać nową linię • ⌘I, aby otworzyć