FastComments.com

FastComments C++ SDK

Oto oficjalne SDK C++ dla FastComments.

Oficjalne SDK C++ dla API FastComments

Repozytorium

Zobacz na GitHub


Agenci kodowania AI Internal Link

skills.sh

Daj swojemu agentowi kodującemu kontekst FastComments, którego potrzebuje - widżety, konfiguracja, Secure SSO, REST API i SDK:

npx skills add fastcomments/skills

Działa z Claude Code, Codex, Cursor, Copilot, Gemini i każdym innym agentem, który obsługuje skills CLI.

Wymagania Internal Link

  • C++17 lub nowszy
  • CMake 3.14 lub nowszy
  • OpenSSL
  • C++ REST SDK (cpprestsdk)
  • Boost
  • Google Test (automatycznie pobierany do testów)

Instalacja Internal Link

Instalacja zależności

sudo apt install libcpprest-dev libboost-all-dev

Budowanie ze źródła

mkdir build
cd build
cmake ..
make

Instalacja

sudo make install

Zawartość biblioteki

Ta biblioteka zawiera wygenerowanego klienta API oraz narzędzia SSO, które ułatwiają pracę z API.

Publiczne vs Zabezpieczone API

Dla klienta API istnieją trzy klasy: DefaultApi, PublicApi i ModerationApi. DefaultApi zawiera metody, które wymagają klucza API, a PublicApi zawiera metody, które mogą być wywoływane bezpośrednio z przeglądarki/urządzenia mobilnego itp. bez uwierzytelnienia. ModerationApi oferuje rozbudowany zestaw szybkich i bieżących interfejsów moderacji. Każda metoda ModerationApi przyjmuje parametr sso i może uwierzytelnić się za pomocą SSO lub pliku cookie sesji FastComments.com.

Notatki Internal Link

Identyfikatory Broadcast

Zauważysz, że w niektórych wywołaniach API trzeba przekazać broadcastId. Gdy otrzymasz zdarzenia, otrzymasz z powrotem ten identyfikator, dzięki czemu będziesz mógł zignorować zdarzenie, jeśli planujesz optymistycznie zastosować zmiany po stronie klienta (na co prawdopodobnie zechcesz się zdecydować, ponieważ zapewnia to najlepsze doświadczenie). Przekaż tutaj UUID. Identyfikator powinien być na tyle unikalny, aby nie wystąpił dwukrotnie w sesji przeglądarki.

SSO (logowanie jednokrotne)

Przykłady SSO znajdziesz poniżej.

Użycie SSO Internal Link


Proste SSO

#include <fastcomments/sso/fastcomments_sso.hpp>
#include <iostream>

using namespace fastcomments::sso;

int main() {
    SimpleSSOUserData user("user-123", "user@example.com", "https://example.com/avatar.jpg");
    FastCommentsSSO sso = FastCommentsSSO::newSimple(user);
    std::string token = sso.createToken();

    std::cout << "SSO Token: " << token << std::endl;
    return 0;
}

Bezpieczne SSO

#include <fastcomments/sso/fastcomments_sso.hpp>
#include <iostream>

using namespace fastcomments::sso;

int main() {
    SecureSSOUserData user("user-123", "user@example.com", "johndoe", "https://example.com/avatar.jpg");

    std::string apiKey = "your-api-key";
    FastCommentsSSO sso = FastCommentsSSO::newSecure(apiKey, user);
    std::string token = sso.createToken();

    std::cout << "Secure SSO Token: " << token << std::endl;
    return 0;
}

Agregacja Internal Link

Aggreguje dokumenty, grupując je (jeśli podano groupBy) i stosując wiele operacji. Obsługiwane są różne operacje (np. sum, countDistinct, avg itp.).

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
aggregationRequestAggregationRequestTak
optionsconst AggregateOptions&Tak

Odpowiedź

Zwraca: AggregateResponse

Przykład

Przykład agregacji
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3
4AggregationRequest aggregationRequest;
5aggregationRequest.setMetric(U("commentCount"));
6aggregationRequest.setStartDate(U("2023-01-01T00:00:00Z"));
7aggregationRequest.setEndDate(U("2023-12-31T23:59:59Z"));
8aggregationRequest.setFilters({ U("status:approved") });
9
10AggregateOptions options;
11options.limit = boost::optional<int>(100);
12options.includeMetadata = boost::optional<bool>(true);
13
14api->aggregate(tenantId, aggregationRequest, options)
15 .then([](pplx::task<std::shared_ptr<AggregateResponse>> task) {
16 try {
17 auto response = task.get();
18 // przetwórz odpowiedź
19 } catch (const std::exception& e) {
20 // obsłuż błąd
21 }
22 });
23

pobierzLogiAudytu Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
optionsconst GetAuditLogsOptions&Yes

Odpowiedź

Zwraca: GetAuditLogsResponse

Przykład

getAuditLogs Przykład
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3
4GetAuditLogsOptions options;
5options.startDate = boost::optional<utility::datetime>(utility::datetime::from_string(U("2023-01-01T00:00:00Z"), utility::datetime::RFC_1123));
6options.endDate = boost::optional<utility::datetime>(utility::datetime::from_string(U("2023-01-31T23:59:59Z"), utility::datetime::RFC_1123));
7options.limit = boost::optional<int>(100);
8
9api->getAuditLogs(tenantId, options).then([](pplx::task<std::shared_ptr<GetAuditLogsResponse>> t) {
10 try {
11 auto response = t.get();
12 // użyj odpowiedzi
13 } catch (const std::exception& e) {
14 // obsłuż błąd
15 }
16});
17

wylogujPublicznie Internal Link

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

Przykład logoutPublic
Copy Copy
1
2api->logoutPublic()
3 .then([](std::shared_ptr<APIEmptyResponse> /*odpowiedź*/) {
4 std::cout << "Logout successful\n";
5 })
6 .then([](pplx::task<void> t) {
7 try {
8 t.get();
9 } catch (const std::exception& e) {
10 std::cerr << "Logout failed: " << e.what() << std::endl;
11 }
12 });
13

zablokujZKomentarzaPublicznie Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
commentIdstringTak
publicBlockFromCommentParamsPublicBlockFromCommentParamsTak
ssostringNie

Odpowiedź

Zwraca: BlockSuccess

Przykład

blockFromCommentPublic Przykład
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto commentId = utility::conversions::to_string_t("comment-987654");
4PublicBlockFromCommentParams blockParams;
5blockParams.reason = utility::conversions::to_string_t("spam");
6blockParams.durationHours = 24;
7boost::optional<utility::string_t> sso = utility::conversions::to_string_t("sso-token-abc123");
8api->blockFromCommentPublic(tenantId, commentId, blockParams, sso)
9 .then([](std::shared_ptr<BlockSuccess> result){
10 auto successCopy = std::make_shared<BlockSuccess>(*result);
11 });
12

odblokujKomentarzPublicznie Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
commentIdstringTak
publicBlockFromCommentParamsPublicBlockFromCommentParamsTak
ssostringNie

Odpowiedź

Zwraca: UnblockSuccess

Przykład

unBlockCommentPublic Przykład
Copy Copy
1
2auto blockParams = PublicBlockFromCommentParams();
3blockParams.reason = U("spam");
4api->unBlockCommentPublic(
5 U("my-tenant-123"),
6 U("comment-789"),
7 blockParams,
8 boost::optional<utility::string_t>(U("sso-token-abc"))
9).then([](std::shared_ptr<UnblockSuccess> result){ });
10

sprawdzoneKomentarzeDlaZablokowanych Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
commentIdsstringTak
ssostringNie

Odpowiedź

Zwraca: CheckBlockedCommentsResponse

Przykład

checkedCommentsForBlocked Przykład
Copy Copy
1
2auto tenantId = U("my-tenant-123");
3auto commentIds = U("cmt-001,cmt-002");
4boost::optional<utility::string_t> sso = U("user@example.com");
5
6api->checkedCommentsForBlocked(tenantId, commentIds, sso).then([](std::shared_ptr<CheckBlockedCommentsResponse> resp){
7 (void)resp;
8});
9

zablokujUżytkownikaZKomentarza Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
blockFromCommentParamsBlockFromCommentParamsTak
optionsconst BlockUserFromCommentOptions&Tak

Odpowiedź

Zwraca: BlockSuccess

Przykład

Przykład blockUserFromComment
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto commentId = utility::conversions::to_string_t("comment-789");
4BlockFromCommentParams params;
5params.reason = utility::conversions::to_string_t("Inappropriate content");
6params.durationDays = boost::optional<int>(30);
7BlockUserFromCommentOptions options;
8options.notifyUser = boost::optional<bool>(true);
9
10api->blockUserFromComment(tenantId, commentId, params, options)
11 .then([](std::shared_ptr<BlockSuccess> result){ })
12 .then([](pplx::task<void> t){ try { t.get(); } catch (const std::exception&) { } });
13

utwórzKomentarzPublicznie Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
urlIdstringTak
broadcastIdstringTak
commentDataCommentDataTak
optionsconst CreateCommentPublicOptions&Tak

Odpowiedź

Zwraca: SaveCommentsResponseWithPresence

Przykład

Przykład createCommentPublic
Copy Copy
1
2auto comment = CommentData();
3comment.body = U("This is a test comment");
4comment.authorName = U("John Doe");
5comment.authorEmail = U("john.doe@example.com");
6
7CreateCommentPublicOptions opts;
8opts.replyToCommentId = boost::optional<utility::string_t>(U("parent-123"));
9
10api->createCommentPublic(
11 U("my-tenant-123"),
12 U("article-456"),
13 U("broadcast-789"),
14 comment,
15 opts).then([](std::shared_ptr<SaveCommentsResponseWithPresence> res){
16 auto commentId = res->commentId;
17 });
18

usuńKomentarz Internal Link

Parametry

NameTypeRequiredDescription
tenantIdstringYes
idstringYes
optionsconst DeleteCommentOptions&Yes

Odpowiedź

Zwraca: DeleteCommentResult

Przykład

Przykład deleteComment
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto commentId = utility::conversions::to_string_t("comment-789");
4DeleteCommentOptions options;
5options.reason = boost::optional<utility::string_t>(utility::conversions::to_string_t("Inappropriate content"));
6options.force = boost::optional<bool>(true);
7api->deleteComment(tenantId, commentId, options).then([](pplx::task<std::shared_ptr<DeleteCommentResult>> task){
8 try{
9 auto result = task.get();
10 }catch(const std::exception&){
11 }
12});
13

usuńKomentarzPublicznie Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
commentIdstringTak
broadcastIdstringTak
optionsconst DeleteCommentPublicOptions&Tak

Odpowiedź

Zwraca: PublicAPIDeleteCommentResponse

Przykład

deleteCommentPublic Przykład
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3auto commentId = utility::string_t(U("comment-456"));
4auto broadcastId = utility::string_t(U("broadcast-789"));
5DeleteCommentPublicOptions options;
6options.force = boost::optional<bool>(true);
7options.reason = boost::optional<utility::string_t>(U("Inappropriate content"));
8api->deleteCommentPublic(tenantId, commentId, broadcastId, options)
9 .then([](pplx::task<std::shared_ptr<PublicAPIDeleteCommentResponse>> t){
10 try{
11 auto resp = t.get();
12 }catch(const std::exception& e){
13 }
14 });
15

usuńGłosKomentarza Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
commentIdstringTak
voteIdstringTak
urlIdstringTak
broadcastIdstringTak
optionsconst DeleteCommentVoteOptions&Tak

Odpowiedź

Zwraca: VoteDeleteResponse

Przykład

Przykład deleteCommentVote
Copy Copy
1
2auto options = DeleteCommentVoteOptions{};
3options.reason = boost::optional<utility::string_t>(U("spam"));
4options.adminOverride = boost::optional<bool>(true);
5
6api->deleteCommentVote(
7 U("my-tenant-123"),
8 U("cmt-456789"),
9 U("vote-987"),
10 U("url-abc123"),
11 U("broadcast-001"),
12 options
13).then([](std::shared_ptr<VoteDeleteResponse> resp){
14 if (resp) {
15 std::cout << "Deleted vote, code: " << resp->code << std::endl;
16 }
17});
18

oznaczKomentarz Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
idstringYes
optionsconst FlagCommentOptions&Yes

Odpowiedź

Zwraca: FlagCommentResponse

Przykład

Przykład flagComment
Copy Copy
1
2auto opts = std::make_shared<FlagCommentOptions>();
3opts->reason = utility::conversions::to_string_t("spam");
4opts->note = boost::optional<utility::string_t>(utility::conversions::to_string_t("User posted duplicate links"));
5
6api->flagComment(utility::conversions::to_string_t("my-tenant-123"),
7 utility::conversions::to_string_t("comment-456"),
8 *opts)
9 .then([](pplx::task<std::shared_ptr<FlagCommentResponse>> t) {
10 auto resp = t.get();
11 });
12

pobierzKomentarz Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
idstringYes

Odpowiedź

Zwraca: APIGetCommentResponse

Przykład

Przykład getComment
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto commentId = utility::conversions::to_string_t("comment-456");
4boost::optional<int> maxDepth = boost::none;
5api->getComment(tenantId, commentId).then([](pplx::task<std::shared_ptr<APIGetCommentResponse>> t){
6 try{
7 auto resp = t.get();
8 }catch(const std::exception&){
9 }
10});
11

pobierzKomentarze Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
optionsconst GetCommentsOptions&Tak

Odpowiedź

Zwraca: APIGetCommentsResponse

Przykład

Przykład getComments
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3GetCommentsOptions options;
4options.page = 1;
5options.limit = 50;
6options.sort = U("newest");
7options.authorEmail = boost::optional<utility::string_t>(U("user@example.com"));
8api->getComments(tenantId, options).then([](pplx::task<std::shared_ptr<APIGetCommentsResponse>> task) {
9 try {
10 auto response = task.get();
11 // użyj odpowiedzi w razie potrzeby
12 } catch (const std::exception& e) {
13 // obsłuż błąd
14 }
15});
16

pobierzKomentarzePublicznie Internal Link

req tenantId urlId

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
urlIdstringYes
optionsconst GetCommentsPublicOptions&Yes

Odpowiedź

Returns: GetCommentsResponseWithPresence_PublicComment_

Przykład

Przykład getCommentsPublic
Copy Copy
1
2auto tenantId = U("my-tenant-123");
3auto urlId = U("article-456");
4GetCommentsPublicOptions opts;
5opts.pageSize = 20;
6opts.includeDeleted = false;
7api->getCommentsPublic(tenantId, urlId, opts).then([](std::shared_ptr<GetCommentsResponseWithPresence_PublicComment_> resp) {
8 (void)resp;
9});
10

pobierzTekstKomentarza Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
optionsconst GetCommentTextOptions&Yes

Response

Zwraca: PublicAPIGetCommentTextResponse

Example

Przykład getCommentText
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("cmt-456789");
4auto options = std::make_shared<GetCommentTextOptions>();
5options->language = boost::optional<utility::string_t>(U("en"));
6options->includeDeleted = boost::optional<bool>(false);
7api->getCommentText(tenantId, commentId, *options).then([](pplx::task<std::shared_ptr<PublicAPIGetCommentTextResponse>> task){
8 try{
9 auto response = task.get();
10 (void)response;
11 }catch(...){}
12});
13

pobierzNazwyUżytkownikówGłosówKomentarza Internal Link

Parameters

NazwaTypWymaganeOpis
tenantIdstringTak
commentIdstringTak
dirint32_tTak
ssostringNie

Odpowiedź

Zwraca: GetCommentVoteUserNamesSuccessResponse

Przykład

Przykład getCommentVoteUserNames
Copy Copy
1
2auto task = api->getCommentVoteUserNames(
3 utility::conversions::to_string_t("my-tenant-123"),
4 utility::conversions::to_string_t("comment-456"),
5 static_cast<int32_t>(1),
6 boost::optional<utility::string_t>(utility::conversions::to_string_t("sso-token"))
7).then([](pplx::task<std::shared_ptr<GetCommentVoteUserNamesSuccessResponse>> t){
8 try{
9 auto response = t.get();
10 }catch(const std::exception&){ }
11});
12

zablokujKomentarz Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
broadcastIdstringYes
ssostringNo

Response

Zwraca: APIEmptyResponse

Example

Przykład lockComment
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto commentId = utility::conversions::to_string_t("comment-987");
4auto broadcastId = utility::conversions::to_string_t("broadcast-654");
5boost::optional<utility::string_t> sso = utility::conversions::to_string_t("sso-token-xyz");
6
7api->lockComment(tenantId, commentId, broadcastId, sso).then([](pplx::task<std::shared_ptr<APIEmptyResponse>> task){
8 try{
9 auto response = task.get();
10 }catch(const std::exception&){
11 }
12});
13

przypnijKomentarz Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
commentIdstringYes
broadcastIdstringYes
ssostringNo

Odpowiedź

Zwraca: ChangeCommentPinStatusResponse

Przykład

pinComment Przykład
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("comment-456");
4utility::string_t broadcastId = U("broadcast-789");
5boost::optional<utility::string_t> sso = U("sso-token-abc");
6
7api->pinComment(tenantId, commentId, broadcastId, sso)
8 .then([](pplx::task<std::shared_ptr<ChangeCommentPinStatusResponse>> task) {
9 try {
10 auto response = task.get();
11 } catch (const std::exception&) {
12 }
13 });
14

zapiszKomentarz Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
createCommentParamsCreateCommentParamsYes
optionsconst SaveCommentOptions&Yes

Odpowiedź

Zwraca: APISaveCommentResponse

Przykład

Przykład saveComment
Copy Copy
1
2CreateCommentParams commentParams;
3commentParams.body = utility::string_t(U("Great article!"));
4commentParams.author = utility::string_t(U("jane.doe@example.com"));
5commentParams.parentId = boost::optional<utility::string_t>(utility::string_t(U("parent-789")));
6
7SaveCommentOptions options;
8options.preview = boost::optional<bool>(false);
9
10api->saveComment(utility::string_t(U("my-tenant-123")), commentParams, options)
11 .then([](std::shared_ptr<APISaveCommentResponse> response) {
12 auto commentId = response->commentId;
13 });
14

ustawTekstKomentarza Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
commentIdstringYes
broadcastIdstringYes
commentTextUpdateRequestCommentTextUpdateRequestYes
optionsconst SetCommentTextOptions&Yes

Odpowiedź

Zwraca: PublicAPISetCommentTextResponse

Przykład

setCommentText Przykład
Copy Copy
1
2auto tenantId = U("my-tenant-123");
3auto commentId = U("cmt-456");
4auto broadcastId = U("brd-789");
5
6CommentTextUpdateRequest updateReq;
7updateReq.text = U("Updated comment content");
8updateReq.isEdited = boost::make_optional(true);
9
10SetCommentTextOptions opts;
11opts.notifySubscribers = boost::make_optional(true);
12
13api->setCommentText(tenantId, commentId, broadcastId, updateReq, opts)
14 .then([](std::shared_ptr<PublicAPISetCommentTextResponse> resp) {
15 });
16

odblokujUżytkownikaZKomentarza Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
idstringYes
unBlockFromCommentParamsUnBlockFromCommentParamsYes
optionsconst UnBlockUserFromCommentOptions&Yes

Odpowiedź

Zwraca: UnblockSuccess

Przykład

unBlockUserFromComment Przykład
Copy Copy
1
2auto params = std::make_shared<UnBlockFromCommentParams>();
3params->commentId = U("cmt-12345");
4params->reason = U("resolved");
5UnBlockUserFromCommentOptions opts;
6opts.notifyUser = boost::optional<bool>(true);
7api->unBlockUserFromComment(U("my-tenant-123"), U("user-456"), *params, opts)
8 .then([](pplx::task<std::shared_ptr<UnblockSuccess>> t){
9 try{
10 auto result = t.get();
11 }catch(...){}
12 });
13

odznaczKomentarz Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
idstringYes
optionsconst UnFlagCommentOptions&Yes

Odpowiedź

Zwraca: FlagCommentResponse

Przykład

Przykład unFlagComment
Copy Copy
1
2auto options = UnFlagCommentOptions{};
3options.reason = boost::optional<utility::string_t>(U("Resolved by moderator"));
4api->unFlagComment(U("my-tenant-123"), U("comment-456"), options)
5 .then([](std::shared_ptr<FlagCommentResponse> response) {
6 if (response) {
7 auto status = response->status;
8 // process status if needed
9 }
10 })
11 .then([](pplx::task<void> previous) {
12 try {
13 previous.get();
14 } catch (const std::exception& e) {
15 // handle error
16 }
17 });
18

odblokujKomentarz Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
commentIdstringTak
broadcastIdstringTak
ssostringNie

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

Przykład unLockComment
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto commentId = utility::conversions::to_string_t("cmt-456789");
4auto broadcastId = utility::conversions::to_string_t("broadcast-001");
5boost::optional<utility::string_t> sso = utility::conversions::to_string_t("john.doe@example.com");
6
7api->unLockComment(tenantId, commentId, broadcastId, sso).then([](pplx::task<std::shared_ptr<APIEmptyResponse>> task) {
8 try {
9 auto response = task.get();
10 } catch (const std::exception&) {
11 }
12});
13

odpinKomentarz Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
commentIdstringYes
broadcastIdstringYes
ssostringNo

Odpowiedź

Zwraca: ChangeCommentPinStatusResponse

Przykład

Przykład unPinComment
Copy Copy
1
2auto task = api->unPinComment(
3 utility::conversions::to_string_t("my-tenant-123"),
4 utility::conversions::to_string_t("cmt-456789"),
5 utility::conversions::to_string_t("broadcast-001"),
6 boost::optional<utility::string_t>(utility::conversions::to_string_t("user@example.com"))
7);
8task.then([](std::shared_ptr<ChangeCommentPinStatusResponse> resp){
9 auto result = std::make_shared<ChangeCommentPinStatusResponse>(*resp);
10});
11

zaktualizujKomentarz Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
updatableCommentParamsUpdatableCommentParamsTak
optionsconst UpdateCommentOptions&Tak

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

Przykład updateComment
Copy Copy
1
2auto tenantId = utility::string_t("my-tenant-123");
3auto commentId = utility::string_t("cmt-789");
4UpdatableCommentParams updatable;
5updatable.body = utility::string_t("Edited comment content");
6updatable.isSpam = boost::optional<bool>(false);
7UpdateCommentOptions options;
8options.notify = boost::optional<bool>(true);
9api->updateComment(tenantId, commentId, updatable, options)
10 .then([](std::shared_ptr<APIEmptyResponse>) {})
11 .then([](pplx::task<void> t) { try { t.get(); } catch(const std::exception&) {} });
12

głosujZaKomentarzem Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
commentIdstringYes
urlIdstringYes
broadcastIdstringYes
voteBodyParamsVoteBodyParamsYes
optionsconst VoteCommentOptions&Yes

Odpowiedź

Zwraca: VoteResponse

Przykład

voteComment Przykład
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto commentId = utility::conversions::to_string_t("comment-7890");
4auto urlId = utility::conversions::to_string_t("article-456");
5auto broadcastId = utility::conversions::to_string_t("broadcast-321");
6
7VoteBodyParams voteParams;
8voteParams.upvote = true;
9voteParams.note = boost::optional<utility::string_t>(utility::conversions::to_string_t("Great insight"));
10
11VoteCommentOptions options;
12options.dryRun = boost::optional<bool>(false);
13
14api->voteComment(tenantId, commentId, urlId, broadcastId, voteParams, options)
15 .then([](pplx::task<std::shared_ptr<VoteResponse>> t) {
16 try {
17 auto response = t.get();
18 // obsłuż odpowiedź
19 } catch (const std::exception&) {
20 }
21 });
22

pobierzKomentarzeDlaUżytkownika Internal Link

Parametry

NazwaTypWymaganeOpis
optionsconst GetCommentsForUserOptions&Tak

Odpowiedź

Zwraca: GetCommentsForUserResponse

Przykład

Przykład getCommentsForUser
Copy Copy
1
2auto options = GetCommentsForUserOptions{
3 utility::conversions::to_string_t("my-tenant-123"),
4 utility::conversions::to_string_t("user@example.com"),
5 boost::optional<int>(50),
6 boost::optional<utility::string_t>(utility::conversions::to_string_t("next-page-token"))
7};
8
9api->getCommentsForUser(options).then([](pplx::task<std::shared_ptr<GetCommentsForUserResponse>> task){
10 try{
11 auto response = task.get();
12 }catch(const std::exception&){}
13});
14

dodajKonfiguracjęDomeny Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
addDomainConfigParamsAddDomainConfigParamsTak

Odpowiedź

Zwraca: AddDomainConfigResponse

Przykład

addDomainConfig Przykład
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3AddDomainConfigParams params;
4params.domain = U("example.com");
5params.adminEmail = U("admin@example.com");
6params.notes = boost::optional<utility::string_t>(U("Primary domain"));
7api->addDomainConfig(tenantId, params).then([](pplx::task<std::shared_ptr<AddDomainConfigResponse>> task){
8 try{
9 auto response = task.get();
10 }catch(const std::exception&){
11 }
12});
13

usuńKonfiguracjęDomeny Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
domainstringTak

Odpowiedź

Zwraca: DeleteDomainConfigResponse

Przykład

deleteDomainConfig Przykład
Copy Copy
1
2boost::optional<utility::string_t> optTenant = U("my-tenant-123");
3boost::optional<utility::string_t> optDomain = U("example.com");
4
5api->deleteDomainConfig(optTenant.value(), optDomain.value())
6 .then([](pplx::task<std::shared_ptr<DeleteDomainConfigResponse>> task) {
7 try {
8 auto response = task.get();
9 } catch (const std::exception&) {
10 }
11 });
12

pobierzKonfiguracjęDomeny Internal Link

Parameters

NazwaTypWymaganeOpis
tenantIdstringYes
domainstringYes

Response

Zwraca: GetDomainConfigResponse

Przykład

Przykład getDomainConfig
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t domain = U("myblog.example.com");
4
5api->getDomainConfig(tenantId, domain)
6 .then([](std::shared_ptr<GetDomainConfigResponse> response) {
7 if (!response) return;
8 boost::optional<bool> moderationEnabled = response->moderationEnabled;
9 boost::optional<std::string> theme = response->theme;
10 if (moderationEnabled && *moderationEnabled) {
11 // handle enabled moderation
12 }
13 if (theme) {
14 // use theme value
15 }
16 })
17 .wait();
18

pobierzKonfiguracjeDomen Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes

Odpowiedź

Zwraca: GetDomainConfigsResponse

Przykład

Przykład getDomainConfigs
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<utility::string_t> optionalTenant = tenantId;
4api->getDomainConfigs(optionalTenant.value())
5 .then([](std::shared_ptr<GetDomainConfigsResponse> response) {
6 auto domains = response->getDomainList();
7 for (const auto& d : domains) {
8 std::cout << d << std::endl;
9 }
10 });
11

modyfikujKonfiguracjęDomeny Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
domainToUpdatestringYes
patchDomainConfigParamsPatchDomainConfigParamsYes

Odpowiedź

Zwraca: PatchDomainConfigResponse

Przykład

Przykład patchDomainConfig
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto domainToUpdate = utility::conversions::to_string_t("example.com");
4PatchDomainConfigParams patchDomainConfigParams;
5patchDomainConfigParams.enableComments = boost::optional<bool>(true);
6patchDomainConfigParams.moderationLevel = boost::optional<int>(2);
7patchDomainConfigParams.customHeader = boost::optional<utility::string_t>(utility::conversions::to_string_t("X-Custom-Header"));
8
9api->patchDomainConfig(tenantId, domainToUpdate, patchDomainConfigParams)
10 .then([](std::shared_ptr<PatchDomainConfigResponse> resp) {
11 // obsługa sukcesu
12 })
13 .then([](pplx::task<void> t) {
14 try { t.get(); } catch (const std::exception& e) { /* obsługa błędów */ }
15 });
16

zapiszKonfiguracjęDomeny Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
domainToUpdatestringYes
updateDomainConfigParamsUpdateDomainConfigParamsYes

Odpowiedź

Zwraca: PutDomainConfigResponse

Przykład

Przykład putDomainConfig
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t domainToUpdate = U("example.com");
4UpdateDomainConfigParams updateParams;
5updateParams.enableComments = true;
6updateParams.moderationLevel = boost::optional<int>(2);
7updateParams.customCss = boost::optional<utility::string_t>(U(".fc-comment{color:red;}"));
8api->putDomainConfig(tenantId, domainToUpdate, updateParams)
9 .then([](std::shared_ptr<PutDomainConfigResponse> resp) {
10 });
11

utwórzSzablonE‑mail Internal Link

Parameters

NazwaTypWymaganeOpis
tenantIdstringTak
createEmailTemplateBodyCreateEmailTemplateBodyTak

Response

Zwraca: CreateEmailTemplateResponse

Przykład

Przykład createEmailTemplate
Copy Copy
1
2auto body = std::make_shared<CreateEmailTemplateBody>();
3body->subject = utility::string_t("Welcome Email");
4body->htmlContent = utility::string_t("<h1>Welcome!</h1><p>Thanks for joining.</p>");
5body->fromEmail = utility::string_t("no-reply@myapp.com");
6body->replyTo = boost::optional<utility::string_t>(utility::string_t("support@myapp.com"));
7body->cc = boost::none;
8api->createEmailTemplate(utility::string_t("my-tenant-123"), *body)
9 .then([](std::shared_ptr<CreateEmailTemplateResponse> resp) {
10 std::cout << "Created template ID: " << resp->id << std::endl;
11 });
12

usuńSzablonE‑mail Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringYes

Response

Zwraca: APIEmptyResponse

Example

deleteEmailTemplate Przykład
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto templateId = utility::conversions::to_string_t("welcome-email-template");
4boost::optional<utility::string_t> optTenantId = tenantId;
5boost::optional<utility::string_t> optTemplateId = templateId;
6api->deleteEmailTemplate(optTenantId.value(), optTemplateId.value())
7 .then([](pplx::task<std::shared_ptr<APIEmptyResponse>> t) {
8 try { t.get(); }
9 catch (const std::exception&) {}
10 });
11

usuńBłądRenderowaniaSzablonuE‑mail Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
errorIdstringTak

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

deleteEmailTemplateRenderError Przykład
Copy Copy
1
2boost::optional<utility::string_t> optTemplateId = utility::conversions::to_string_t("template-456");
3api->deleteEmailTemplateRenderError(
4 utility::conversions::to_string_t("my-tenant-123"),
5 *optTemplateId,
6 utility::conversions::to_string_t("error-789"))
7 .then([](std::shared_ptr<APIEmptyResponse>) {})
8 .then([](pplx::task<void> t) {
9 try { t.get(); } catch (...) {}
10 });
11

pobierzSzablonE‑mail Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak

Odpowiedź

Zwraca: GetEmailTemplateResponse

Przykład

getEmailTemplate Przykład
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto templateId = utility::conversions::to_string_t("welcome-email");
4boost::optional<utility::string_t> language = utility::conversions::to_string_t("en-US");
5
6api->getEmailTemplate(tenantId, templateId)
7 .then([=](pplx::task<std::shared_ptr<GetEmailTemplateResponse>> task) {
8 try {
9 auto response = task.get();
10 } catch (const std::exception&) {
11 }
12 });
13

pobierzDefinicjeSzablonuE‑mail Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak

Odpowiedź

Zwraca: GetEmailTemplateDefinitionsResponse

Przykład

getEmailTemplateDefinitions Przykład
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3api->getEmailTemplateDefinitions(tenantId).then([](pplx::task<std::shared_ptr<GetEmailTemplateDefinitionsResponse>> t) {
4 try {
5 auto resp = t.get();
6 boost::optional<utility::string_t> tmplName = resp ? resp->templateName : boost::none;
7 if (tmplName) {
8 std::cout << *tmplName << std::endl;
9 }
10 } catch (const std::exception& e) {
11 std::cerr << e.what() << std::endl;
12 }
13});
14

pobierzBłędyRenderowaniaSzablonuE‑mail Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
skipdoubleNie

Odpowiedź

Zwraca: GetEmailTemplateRenderErrorsResponse

Przykład

Przykład getEmailTemplateRenderErrors
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t id = U("email-template-789");
4boost::optional<double> skip = 20.0;
5
6api->getEmailTemplateRenderErrors(tenantId, id, skip)
7 .then([](pplx::task<std::shared_ptr<GetEmailTemplateRenderErrorsResponse>> task) {
8 try {
9 auto response = task.get();
10 // Użyj odpowiedzi w razie potrzeby
11 } catch (const std::exception& ex) {
12 // Obsłuż błąd
13 }
14 });
15

pobierzSzablonyE‑mail Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
skipdoubleNo

Odpowiedź

Zwraca: GetEmailTemplatesResponse

Przykład

Przykład getEmailTemplates
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3boost::optional<double> skip = 10.0;
4api->getEmailTemplates(tenantId, skip)
5 .then([](std::shared_ptr<GetEmailTemplatesResponse> resp) {
6 (void)resp;
7 });
8

renderujSzablonE‑mail Internal Link

Parameters

NazwaTypWymaganeOpis
tenantIdstringTak
renderEmailTemplateBodyRenderEmailTemplateBodyTak
localestringNie

Response

Zwraca: RenderEmailTemplateResponse

Example

renderEmailTemplate Przykład
Copy Copy
1
2auto body = RenderEmailTemplateBody();
3body.templateId = U("welcome-email");
4body.recipientEmail = U("user@example.com");
5boost::optional<utility::string_t> locale = U("en-US");
6
7api->renderEmailTemplate(U("my-tenant-123"), body, locale)
8 .then([](std::shared_ptr<RenderEmailTemplateResponse> resp) {
9 std::cout << "Email template rendered successfully\n";
10 });
11

zaktualizujSzablonE‑mail Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
idstringYes
updateEmailTemplateBodyUpdateEmailTemplateBodyYes

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

updateEmailTemplate Przykład
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t templateId = U("welcome-email");
4UpdateEmailTemplateBody body;
5body.subject = U("Welcome to Our Platform");
6body.content = U("<p>Hello \{{userName}}, welcome aboard!</p>");
7body.isActive = boost::optional<bool>(true);
8api->updateEmailTemplate(tenantId, templateId, body)
9 .then([](std::shared_ptr<APIEmptyResponse> response) {
10 // obsługa sukcesu
11 })
12 .then([](pplx::task<void> t) {
13 try { t.get(); } catch (const std::exception &) { /* obsługa błędów */ }
14 });
15

pobierzLogWydarzeń Internal Link

req tenantId urlId userIdWS

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
urlIdstringTak
userIdWSstringTak
startTimeint64_tTak
endTimeint64_tNie

Odpowiedź

Zwraca: GetEventLogResponse

Przykład

Przykład getEventLog
Copy Copy
1
2auto startTime = int64_t(1622505600);
3boost::optional<int64_t> endTime = int64_t(1622592000);
4api->getEventLog(U("my-tenant-123"), U("article-456"), U("user@example.com"), startTime, endTime)
5 .then([](std::shared_ptr<GetEventLogResponse> response){
6 auto copy = std::make_shared<GetEventLogResponse>(*response);
7 (void)copy;
8 });
9

pobierzGlobalnyLogWydarzeń Internal Link

req tenantId urlId userIdWS

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
urlIdstringTak
userIdWSstringTak
startTimeint64_tTak
endTimeint64_tNie

Odpowiedź

Zwraca: GetEventLogResponse

Przykład

Przykład getGlobalEventLog
Copy Copy
1
2api->getGlobalEventLog(
3 U("my-tenant-123"),
4 U("article-456"),
5 U("user@example.com"),
6 1622505600,
7 boost::optional<int64_t>(1625097600)
8).then([](std::shared_ptr<GetEventLogResponse> resp) {
9 (void)resp;
10});
11

utwórzPostNaKanale Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
createFeedPostParamsCreateFeedPostParamsTak
optionsconst CreateFeedPostOptions&Tak

Odpowiedź

Zwraca: CreateFeedPostsResponse

Przykład

createFeedPost Przykład
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3CreateFeedPostParams postParams;
4postParams.content = utility::conversions::to_string_t("Excited to join FastComments!");
5postParams.authorEmail = utility::conversions::to_string_t("user@example.com");
6postParams.title = utility::conversions::to_string_t("My First Post");
7postParams.tags = boost::optional<std::vector<utility::string_t>>({ utility::conversions::to_string_t("intro") });
8
9CreateFeedPostOptions options;
10options.notifyFollowers = boost::optional<bool>(true);
11options.scheduledAt = boost::optional<utility::datetime>(utility::datetime::utc_now());
12
13api->createFeedPost(tenantId, postParams, options).then([](std::shared_ptr<CreateFeedPostsResponse> resp) {
14 auto postId = resp->postId;
15});
16

utwórzPostNaKanalePublicznie Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
createFeedPostParamsCreateFeedPostParamsTak
optionsconst CreateFeedPostPublicOptions&Tak

Odpowiedź

Zwraca: CreateFeedPostResponse

Przykład

Przykład createFeedPostPublic
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3
4CreateFeedPostParams params;
5params.title = U("Introducing Our New Feature");
6params.content = U("We are excited to announce the release of our latest update.");
7params.authorEmail = boost::optional<utility::string_t>(U("user@example.com"));
8params.tags = boost::optional<std::vector<utility::string_t>>({U("announcement"), U("release")});
9
10CreateFeedPostPublicOptions options;
11
12api->createFeedPostPublic(tenantId, params, options)
13 .then([](std::shared_ptr<CreateFeedPostResponse> resp) {
14 if (resp) {
15 std::wcout << U("Post created with ID: ") << resp->postId << std::endl;
16 }
17 });
18

usuńPostNaKanalePublicznie Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
postIdstringTak
optionsconst DeleteFeedPostPublicOptions&Tak

Odpowiedź

Zwraca: DeleteFeedPostPublicResponse

Przykład

Przykład deleteFeedPostPublic
Copy Copy
1
2auto opts = std::make_shared<DeleteFeedPostPublicOptions>();
3opts->reason = boost::optional<utility::string_t>(U("Inappropriate content"));
4api->deleteFeedPostPublic(U("my-tenant-123"), U("post-789"), *opts)
5 .then([](std::shared_ptr<DeleteFeedPostPublicResponse> resp) {
6 if (resp && resp->isSuccess()) {
7 // success logic
8 }
9 });
10

pobierzPostyNaKanale Internal Link

req tenantId afterId

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
optionsconst GetFeedPostsOptions&Yes

Odpowiedź

Zwraca: GetFeedPostsResponse

Przykład

Przykład getFeedPosts
Copy Copy
1
2auto opts = std::make_shared<GetFeedPostsOptions>();
3opts->maxResults = boost::optional<int>(50);
4opts->cursor = boost::optional<utility::string_t>(U("next-cursor"));
5api->getFeedPosts(U("my-tenant-123"), *opts).then([](std::shared_ptr<GetFeedPostsResponse> resp) {
6 auto count = resp->posts.size();
7});
8

pobierzPostyNaKanalePublicznie Internal Link

req tenantId afterId

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
optionsconst GetFeedPostsPublicOptions&Tak

Odpowiedź

Zwraca: PublicFeedPostsResponse

Przykład

getFeedPostsPublic Przykład
Copy Copy
1
2auto options = GetFeedPostsPublicOptions{};
3options.limit = boost::optional<int>{20};
4options.before = boost::optional<utility::string_t>{U("2023-01-01T00:00:00Z")};
5
6api->getFeedPostsPublic(U("my-tenant-123"), options).then([](pplx::task<std::shared_ptr<PublicFeedPostsResponse>> task){
7 try{
8 auto response = task.get();
9 auto processed = std::make_shared<PublicFeedPostsResponse>(*response);
10 // Użyj przetworzonego w razie potrzeby
11 }catch(const std::exception&){
12 // Obsłuż błąd
13 }
14});
15

pobierzStatystykiPostówNaKanale Internal Link


Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
postIdsvector<stringTak
ssostringNie

Odpowiedź

Zwraca: FeedPostsStatsResponse

Przykład

Przykład getFeedPostsStats
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3std::vector<utility::string_t> postIds = {
4 utility::conversions::to_string_t("post-001"),
5 utility::conversions::to_string_t("post-002")
6};
7boost::optional<utility::string_t> sso = utility::conversions::to_string_t("user@example.com");
8
9api->getFeedPostsStats(tenantId, postIds, sso)
10 .then([](std::shared_ptr<FeedPostsStatsResponse> response) {
11 (void)response;
12 });
13

pobierzReakcjeUżytkownikaPublicznie Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
optionsconst GetUserReactsPublicOptions&Tak

Odpowiedź

Zwraca: UserReactsResponse

Przykład

Przykład getUserReactsPublic
Copy Copy
1
2auto options = GetUserReactsPublicOptions{};
3options.userId = boost::optional<utility::string_t>(U("user@example.com"));
4options.limit = boost::optional<int>(50);
5api->getUserReactsPublic(U("my-tenant-123"), options).then([](pplx::task<std::shared_ptr<UserReactsResponse>> t){
6 auto response = t.get();
7});
8

zareagujNaPostNaKanalePublicznie Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
postIdstringTak
reactBodyParamsReactBodyParamsTak
optionsconst ReactFeedPostPublicOptions&Tak

Odpowiedź

Zwraca: ReactFeedPostResponse

Przykład

Przykład reactFeedPostPublic
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto postId = utility::conversions::to_string_t("post-987");
4ReactBodyParams reactBody;
5reactBody.reaction = utility::conversions::to_string_t("love");
6reactBody.userId = utility::conversions::to_string_t("user@example.com");
7ReactFeedPostPublicOptions options;
8options.metadata = boost::optional<utility::string_t>(utility::conversions::to_string_t("mobile"));
9api->reactFeedPostPublic(tenantId, postId, reactBody, options)
10 .then([](std::shared_ptr<ReactFeedPostResponse> resp) {
11 });
12

zaktualizujPostNaKanale Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
feedPostFeedPostTak

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

Przykład updateFeedPost
Copy Copy
1
2utility::string_t tenantId = U"my-tenant-123";
3utility::string_t postId = U"post-456";
4
5FeedPost feedPost;
6feedPost.title = U"Breaking News";
7feedPost.content = U"Details of the update go here.";
8feedPost.imageUrl = boost::optional<utility::string_t>(U"https://example.com/image.jpg");
9
10api->updateFeedPost(tenantId, postId, feedPost)
11 .then([](pplx::task<std::shared_ptr<APIEmptyResponse>> task) {
12 try {
13 auto response = task.get();
14 } catch (const std::exception& ex) {
15 }
16 });
17

zaktualizujPostNaKanalePublicznie Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
postIdstringYes
updateFeedPostParamsUpdateFeedPostParamsYes
optionsconst UpdateFeedPostPublicOptions&Yes

Odpowiedź

Zwraca: CreateFeedPostResponse

Przykład

updateFeedPostPublic Przykład
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t postId = U("post-456");
4UpdateFeedPostParams params;
5params.title = boost::optional<utility::string_t>(U("Updated Title"));
6params.body = boost::optional<utility::string_t>(U("Updated content of the post."));
7UpdateFeedPostPublicOptions options;
8options.notifyFollowers = boost::optional<bool>(true);
9api->updateFeedPostPublic(tenantId, postId, params, options)
10 .then([](std::shared_ptr<CreateFeedPostResponse> resp) {
11 auto result = resp;
12 });
13

oznaczKomentarzPublicznie Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
commentIdstringTak
isFlaggedboolTak
ssostringNie

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

Przykład flagCommentPublic
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto commentId = utility::conversions::to_string_t("cmt-456789");
4bool isFlagged = true;
5boost::optional<utility::string_t> sso = utility::conversions::to_string_t("sso-token-abc");
6
7api->flagCommentPublic(tenantId, commentId, isFlagged, sso)
8 .then([](pplx::task<std::shared_ptr<APIEmptyResponse>> t){
9 try{
10 auto resp = t.get();
11 }catch(const std::exception&){
12 }
13 });
14

pobierzDużyGif Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
largeInternalURLSanitizedstringYes

Response

Zwraca: GifGetLargeResponse

Example

Przykład getGifLarge
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto largeUrl = utility::conversions::to_string_t("https://cdn.example.com/gifs/large/abc123.gif");
4
5api->getGifLarge(tenantId, largeUrl)
6 .then([&](std::shared_ptr<GifGetLargeResponse> resp) {
7 boost::optional<utility::string_t> maybeUrl;
8 if (resp && resp->url) {
9 maybeUrl = resp->url;
10 }
11 if (maybeUrl) {
12 std::wcout << *maybeUrl << std::endl;
13 }
14 });
15

wyszukajGify Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
searchstringYes
optionsconst GetGifsSearchOptions&Yes

Odpowiedź

Zwraca: GetGifsSearchResponse

Przykład

getGifsSearch Przykład
Copy Copy
1
2auto tenantId = U("my-tenant-123");
3auto search = U("funny cats");
4GetGifsSearchOptions options;
5options.limit = boost::optional<int>(10);
6options.rating = boost::optional<utility::string_t>(U("pg"));
7api->getGifsSearch(tenantId, search, options).then([](pplx::task<std::shared_ptr<GetGifsSearchResponse>> task){
8 try{
9 auto response = task.get();
10 }catch(const std::exception&){
11 }
12});
13

pobierzPopularneGify Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
optionsconst GetGifsTrendingOptions&Tak

Odpowiedź

Zwraca: GetGifsTrendingResponse

Przykład

Przykład getGifsTrending
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3GetGifsTrendingOptions options;
4options.limit = 10;
5options.rating = boost::optional<utility::string_t>(U("G"));
6api->getGifsTrending(tenantId, options).then([](std::shared_ptr<GetGifsTrendingResponse> response) {
7 for (const auto& gif : response->gifs) {
8 auto url = gif.url;
9 }
10});
11

dodajHashtag Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
createHashTagBodyCreateHashTagBodyTak

Odpowiedź

Zwraca: CreateHashTagResponse

Przykład

addHashTag Przykład
Copy Copy
1
2CreateHashTagBody request;
3request.tag = utility::conversions::to_string_t("feature-request");
4request.description = utility::conversions::to_string_t("Requests for new features");
5request.relatedUrl = boost::optional<utility::string_t>(utility::conversions::to_string_t("https://example.com/feature-request"));
6
7api->addHashTag(utility::conversions::to_string_t("my-tenant-123"), request)
8 .then([](std::shared_ptr<CreateHashTagResponse> resp) {
9 (void)resp;
10 });
11

dodajHashtagiMasowo Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
bulkCreateHashTagsBodyBulkCreateHashTagsBodyYes

Odpowiedź

Zwraca: BulkCreateHashTagsResponse

Przykład

Przykład addHashTagsBulk
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3BulkCreateHashTagsBody bulkBody;
4bulkBody.tags = { utility::string_t(U("announcement")), utility::string_t(U("feature-request")) };
5bulkBody.description = boost::optional<utility::string_t>(U("Bulk tag creation"));
6api->addHashTagsBulk(tenantId, bulkBody).then([](pplx::task<std::shared_ptr<BulkCreateHashTagsResponse>> task){
7 try{
8 auto resp = task.get();
9 }catch(const std::exception&){
10 }
11});
12

usuńHashtag Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
tagstringTak
deleteHashTagRequestBodyDeleteHashTagRequestBodyTak

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

Przykład deleteHashTag
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-001");
3auto tag = utility::conversions::to_string_t("news");
4DeleteHashTagRequestBody requestBody;
5requestBody.userId = utility::conversions::to_string_t("user-42");
6requestBody.reason = boost::optional<utility::string_t>(utility::conversions::to_string_t("User request"));
7api->deleteHashTag(tenantId, tag, requestBody)
8 .then([](std::shared_ptr<APIEmptyResponse> resp) {
9 });
10

pobierzHashtagi Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
pagedoubleNie

Odpowiedź

Zwraca: GetHashTagsResponse

Przykład

Przykład getHashTags
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3boost::optional<double> page = 2.0;
4
5api->getHashTags(tenantId, page).then([](pplx::task<std::shared_ptr<GetHashTagsResponse>> task) {
6 try {
7 auto resultPtr = task.get();
8 auto response = std::make_shared<GetHashTagsResponse>(*resultPtr);
9 // użyj odpowiedzi
10 } catch (const std::exception&) {
11 // obsłuż błąd
12 }
13});
14

modyfikujHashtag Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
tagstringTak
updateHashTagBodyUpdateHashTagBodyTak

Odpowiedź

Zwraca: UpdateHashTagResponse

Przykład

Przykład patchHashTag
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t tag = U("important");
4auto body = std::make_shared<UpdateHashTagBody>();
5body->name = U("important-updated");
6body->description = boost::optional<utility::string_t>(U("Updated description"));
7api->patchHashTag(tenantId, tag, *body)
8 .then([](pplx::task<std::shared_ptr<UpdateHashTagResponse>> t){
9 try{
10 auto response = t.get();
11 std::cout << "Updated tag ID: " << response->id << std::endl;
12 }catch(const std::exception& e){
13 std::cerr << "Patch failed: " << e.what() << std::endl;
14 }
15 });
16

usuńGłosModeracji Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
commentIdstringYes
voteIdstringYes
optionsconst DeleteModerationVoteOptions&Yes

Odpowiedź

Zwraca: VoteDeleteResponse

Przykład

deleteModerationVote Przykład
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto commentId = utility::conversions::to_string_t("comment-abc123");
4auto voteId = utility::conversions::to_string_t("vote-xyz789");
5DeleteModerationVoteOptions opts;
6opts.reason = utility::conversions::to_string_t("Offensive language");
7opts.hardDelete = boost::optional<bool>(true);
8api->deleteModerationVote(tenantId, commentId, voteId, opts)
9 .then([](std::shared_ptr<VoteDeleteResponse> resp){});
10

pobierzKomentarzeAPI Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
optionsconst GetApiCommentsOptions&Tak

Odpowiedź

Zwraca: ModerationAPIGetCommentsResponse

Przykład

Przykład getApiComments
Copy Copy
1
2auto options = GetApiCommentsOptions{};
3options.page = boost::make_optional(2);
4options.authorEmail = boost::make_optional<utility::string_t>(U("user@example.com"));
5options.includeDeleted = boost::make_optional(false);
6
7api->getApiComments(U("my-tenant-123"), options).then([](pplx::task<std::shared_ptr<ModerationAPIGetCommentsResponse>> task){
8 try{
9 auto response = task.get();
10 }catch(const std::exception&){
11 }
12});
13

pobierzStatusEksportuAPI Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
optionsconst GetApiExportStatusOptions&Tak

Odpowiedź

Zwraca: ModerationExportStatusResponse

Przykład

getApiExportStatus Przykład
Copy Copy
1
2auto opts = GetApiExportStatusOptions{};
3opts.exportId = boost::make_optional<utility::string_t>(U("export-456"));
4api->getApiExportStatus(U("my-tenant-123"), opts)
5 .then([](pplx::task<std::shared_ptr<ModerationExportStatusResponse>> t){
6 try{
7 auto status = t.get();
8 }catch(const std::exception&){
9 }
10 });
11

pobierzIdAPI Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
optionsconst GetApiIdsOptions&Tak

Odpowiedź

Zwraca: ModerationAPIGetCommentIdsResponse

Przykład

Przykład getApiIds
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3GetApiIdsOptions options;
4options.limit = boost::optional<int>(100);
5options.cursor = boost::optional<utility::string_t>(U("next-page-token"));
6api->getApiIds(tenantId, options).then([](pplx::task<std::shared_ptr<ModerationAPIGetCommentIdsResponse>> t){
7 try{
8 auto response = t.get();
9 auto ids = response->commentIds;
10 }catch(const std::exception&){
11 }
12});
13

pobierzZbanowanychUżytkownikówZKomentarza Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
commentIdstringTak
ssostringNie

Odpowiedź

Zwraca: GetBannedUsersFromCommentResponse

Przykład

Przykład getBanUsersFromComment
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3auto commentId = utility::string_t(U("comment-456"));
4boost::optional<utility::string_t> sso = boost::make_optional(utility::string_t(U("sso-token-abc")));
5
6api->getBanUsersFromComment(tenantId, commentId, sso).then([](pplx::task<std::shared_ptr<GetBannedUsersFromCommentResponse>> task) {
7 try {
8 auto response = task.get();
9 } catch (const std::exception&) {
10 }
11});
12

pobierzStatusBanaKomentarza Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
commentIdstringTak
ssostringNie

Odpowiedź

Zwraca: GetCommentBanStatusResponse

Przykład

Przykład getCommentBanStatus
Copy Copy
1
2auto tenantId = utility::string_t(U"my-tenant-123");
3auto commentId = utility::string_t(U"comment-456");
4boost::optional<utility::string_t> sso = utility::string_t(U"user@example.com");
5
6api->getCommentBanStatus(tenantId, commentId, sso).then([](pplx::task<std::shared_ptr<GetCommentBanStatusResponse>> t){
7 try{
8 auto response = t.get();
9 }catch(const std::exception&){ }
10});
11

pobierzPodkomentarze Internal Link

Parameters

NazwaTypWymaganeOpis
tenantIdstringYes
commentIdstringYes
ssostringNo

Response

Zwraca: ModerationAPIChildCommentsResponse

Example

Przykład getCommentChildren
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("comment-456");
4boost::optional<utility::string_t> sso = U("sso-token-abc");
5
6api->getCommentChildren(tenantId, commentId, sso)
7 .then([](pplx::task<std::shared_ptr<ModerationAPIChildCommentsResponse>> task) {
8 try {
9 auto response = task.get();
10 } catch (const std::exception&) {
11 }
12 });
13

pobierzLiczbę Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
optionsconst GetCountOptions&Tak

Odpowiedź

Zwraca: ModerationAPICountCommentsResponse

Przykład

Przykład getCount
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3GetCountOptions options;
4options.userEmail = boost::optional<utility::string_t>(U("user@example.com"));
5options.maxResults = boost::optional<int>(100);
6api->getCount(tenantId, options).then([](pplx::task<std::shared_ptr<ModerationAPICountCommentsResponse>> task){
7 try{
8 auto resp = task.get();
9 auto copy = std::make_shared<ModerationAPICountCommentsResponse>(*resp);
10 std::cout << "Count: " << copy->count << std::endl;
11 }catch(const std::exception& e){
12 std::cerr << "Error: " << e.what() << std::endl;
13 }
14});
15

pobierzLiczby Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
ssostringNie

Odpowiedź

Zwraca: GetBannedUsersCountResponse

Przykład

getCounts Przykład
Copy Copy
1
2api->getCounts(
3 utility::conversions::to_string_t("my-tenant-123"),
4 boost::optional<utility::string_t>(utility::conversions::to_string_t("john.doe@example.com"))
5).then([](pplx::task<std::shared_ptr<GetBannedUsersCountResponse>> t){
6 try{
7 auto response = t.get();
8 }catch(const std::exception&){
9 }
10});
11

pobierzLogi Internal Link

Parameters

NazwaTypWymaganeOpis
tenantIdstringTak
commentIdstringTak
ssostringNie

Response

Zwraca: ModerationAPIGetLogsResponse

Example

getLogs Przykład
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("comment-456");
4boost::optional<utility::string_t> sso = U("sso-token-abc");
5
6api->getLogs(tenantId, commentId, sso).then([](pplx::task<std::shared_ptr<ModerationAPIGetLogsResponse>> t){
7 try{
8 auto response = t.get();
9 }catch(...){
10 }
11});
12

pobierzRęczneOdznaki Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
ssostringNie

Odpowiedź

Zwraca: GetTenantManualBadgesResponse

Przykład

Przykład getManualBadges
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<utility::string_t> sso = boost::make_optional(U("user@example.com"));
4
5api->getManualBadges(tenantId, sso)
6 .then([](pplx::task<std::shared_ptr<GetTenantManualBadgesResponse>> t) {
7 try {
8 auto response = t.get();
9 // przetwarzaj odpowiedź, np. response->badgeList
10 } catch (const std::exception& ex) {
11 // obsłuż błąd
12 }
13 });
14

pobierzRęczneOdznakiDlaUżytkownika Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
optionsconst GetManualBadgesForUserOptions&Tak

Odpowiedź

Zwraca: GetUserManualBadgesResponse

Przykład

Przykład getManualBadgesForUser
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3GetManualBadgesForUserOptions options;
4options.userEmail = boost::optional<utility::string_t>(U("user@example.com"));
5options.includeInactive = boost::optional<bool>(true);
6api->getManualBadgesForUser(tenantId, options).then([](pplx::task<std::shared_ptr<GetUserManualBadgesResponse>> task){
7 try{
8 auto response = task.get();
9 }catch(const std::exception&){
10 }
11});
12

pobierzKomentarzModeracji Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
commentIdstringYes
optionsconst GetModerationCommentOptions&Yes

Odpowiedź

Returns: ModerationAPICommentResponse

Przykład

Przykład getModerationComment
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto commentId = utility::conversions::to_string_t("comment-456");
4GetModerationCommentOptions options;
5options.includeDeleted = boost::optional<bool>(true);
6options.locale = boost::optional<utility::string_t>(utility::conversions::to_string_t("en-US"));
7api->getModerationComment(tenantId, commentId, options)
8 .then([](pplx::task<std::shared_ptr<ModerationAPICommentResponse>> task) {
9 try {
10 auto response = task.get();
11 // Przetwórz odpowiedź w razie potrzeby
12 } catch (const std::exception& ex) {
13 // Obsłuż błąd
14 }
15 });
16

pobierzTekstKomentarzaModeracji Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
commentIdstringYes
ssostringNo

Odpowiedź

Zwraca: GetCommentTextResponse

Przykład

Przykład getModerationCommentText
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("cmt-987654");
4boost::optional<utility::string_t> sso = U("sso-token-abc");
5
6api->getModerationCommentText(tenantId, commentId, sso)
7 .then([](pplx::task<std::shared_ptr<GetCommentTextResponse>> t) {
8 try {
9 auto resp = t.get();
10 auto text = std::make_shared<std::string>(resp->commentText);
11 } catch (const std::exception&) {
12 }
13 });
14

pobierzPodsumowaniePrzedBanem Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
commentIdstringTak
optionsconst GetPreBanSummaryOptions&Tak

Odpowiedź

Zwraca: PreBanSummary

Przykład

Przykład getPreBanSummary
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto commentId = utility::conversions::to_string_t("cmt-456789");
4GetPreBanSummaryOptions options;
5options.locale = boost::optional<utility::string_t>{utility::conversions::to_string_t("en-US")};
6
7api->getPreBanSummary(tenantId, commentId, options)
8 .then([](pplx::task<std::shared_ptr<PreBanSummary>> t) {
9 try {
10 auto summary = t.get();
11 // przetwarzaj podsumowanie
12 } catch (const std::exception&) {
13 // obsłuż błąd
14 }
15 });
16

pobierzPodsumowanieWyszukiwaniaKomentarzy Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
optionsconst GetSearchCommentsSummaryOptions&Tak

Odpowiedź

Zwraca: ModerationCommentSearchResponse

Przykład

Przykład getSearchCommentsSummary
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto options = std::make_shared<GetSearchCommentsSummaryOptions>();
4options->query = utility::conversions::to_string_t("spam");
5options->pageSize = boost::optional<int>(50);
6options->pageNumber = boost::optional<int>(1);
7options->fromDate = boost::none;
8api->getSearchCommentsSummary(tenantId, *options).then([](pplx::task<std::shared_ptr<ModerationCommentSearchResponse>> task){
9 try{
10 auto response = task.get();
11 }catch(const std::exception&){
12 }
13});
14

pobierzStronyWyszukiwania Internal Link

Parametry

NameTypeRequiredDescription
tenantIdstringYes
optionsconst GetSearchPagesOptions&Yes

Odpowiedź

Zwraca: ModerationPageSearchResponse

Przykład

Przykład getSearchPages
Copy Copy
1
2GetSearchPagesOptions options;
3options.pageNumber = boost::optional<int>(1);
4options.pageSize = boost::optional<int>(50);
5options.searchTerm = boost::optional<utility::string_t>(U("spam"));
6
7api->getSearchPages(U("my-tenant-123"), options)
8 .then([](pplx::task<std::shared_ptr<ModerationPageSearchResponse>> task) {
9 try {
10 auto response = task.get();
11 // użyj odpowiedzi
12 } catch (const std::exception& e) {
13 // obsłuż błąd
14 }
15 });
16

pobierzStronyWyszukiwania Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
optionsconst GetSearchSitesOptions&Tak

Odpowiedź

Zwraca: ModerationSiteSearchResponse

Przykład

Przykład getSearchSites
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3GetSearchSitesOptions options;
4options.query = boost::make_optional(utility::string_t(U("example query")));
5options.limit = boost::make_optional(25);
6
7api->getSearchSites(tenantId, options)
8 .then([](pplx::task<std::shared_ptr<ModerationSiteSearchResponse>> t) {
9 try {
10 auto response = t.get();
11 auto respPtr = std::make_shared<ModerationSiteSearchResponse>(*response);
12 for (const auto& site : respPtr->sites) {
13 // logika przetwarzania
14 }
15 } catch (const std::exception&) {
16 // obsługa błędów
17 }
18 });
19

pobierzSugestieWyszukiwania Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
optionsconst GetSearchSuggestOptions&Tak

Odpowiedź

Zwraca: ModerationSuggestResponse

Przykład

getSearchSuggest Przykład
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3GetSearchSuggestOptions opts;
4opts.query = U("search term");
5opts.limit = boost::optional<int>(5);
6opts.includeInactive = boost::optional<bool>(false);
7api->getSearchSuggest(tenantId, opts).then([](pplx::task<std::shared_ptr<ModerationSuggestResponse>> t){
8 try{
9 auto resp = t.get();
10 }catch(const std::exception&){ }
11}).wait();
12

pobierzUżytkownikówWyszukiwania Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
optionsconst GetSearchUsersOptions&Tak

Odpowiedź

Zwraca: ModerationUserSearchResponse

Przykład

getSearchUsers Przykład
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3GetSearchUsersOptions opts;
4opts.query = utility::string_t(U("john.doe@example.com"));
5opts.page = boost::optional<int>(1);
6opts.pageSize = boost::optional<int>(20);
7
8api->getSearchUsers(tenantId, opts)
9 .then([](std::shared_ptr<ModerationUserSearchResponse> resp) {
10 for (const auto& user : resp->users) {
11 std::wcout << user.id << L" - " << user.email << std::endl;
12 }
13 });
14

pobierzWspółczynnikZaufania Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
optionsconst GetTrustFactorOptions&Yes

Odpowiedź

Zwraca: GetUserTrustFactorResponse

Przykład

Przykład getTrustFactor
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3GetTrustFactorOptions options;
4options.userEmail = boost::optional<utility::string_t>(U("user@example.com"));
5options.ipAddress = boost::optional<utility::string_t>(U("203.0.113.42"));
6api->getTrustFactor(tenantId, options).then([](std::shared_ptr<GetUserTrustFactorResponse> resp) {
7 if (resp) {
8 std::cout << "Trust factor: " << resp->trustFactor << std::endl;
9 }
10});
11

pobierzPreferencjeBanaUżytkownika Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
ssostringNie

Odpowiedź

Zwraca: APIModerateGetUserBanPreferencesResponse

Przykład

Przykład getUserBanPreference
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3boost::optional<utility::string_t> sso = boost::optional<utility::string_t>(U("user@example.com"));
4
5api->getUserBanPreference(tenantId, sso)
6 .then([](pplx::task<std::shared_ptr<APIModerateGetUserBanPreferencesResponse>> t) {
7 try {
8 auto resp = t.get();
9 } catch (const std::exception&) {
10 }
11 });
12

pobierzWewnętrznyProfilUżytkownika Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
optionsconst GetUserInternalProfileOptions&Yes

Odpowiedź

Zwraca: GetUserInternalProfileResponse

Przykład

getUserInternalProfile Przykład
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3GetUserInternalProfileOptions options;
4options.email = boost::optional<utility::string_t>(U("user@example.com"));
5options.includeDetails = boost::optional<bool>(true);
6
7api->getUserInternalProfile(tenantId, options)
8 .then([](std::shared_ptr<GetUserInternalProfileResponse> response) {
9 if (response) {
10 auto name = response->displayName;
11 auto id = response->userId;
12 }
13 });
14

wyślijDostosowanieGłosówKomentarza Internal Link

Parameters

NazwaTypWymaganeOpis
tenantIdstringYes
commentIdstringYes
adjustCommentVotesParamsAdjustCommentVotesParamsYes
optionsconst PostAdjustCommentVotesOptions&Yes

Response

Zwraca: AdjustVotesResponse

Example

postAdjustCommentVotes Przykład
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto commentId = utility::conversions::to_string_t("cmt-456789");
4AdjustCommentVotesParams params;
5params.voteDelta = 1;
6params.userIdentifier = utility::conversions::to_string_t("user@example.com");
7params.reason = boost::optional<utility::string_t>(utility::conversions::to_string_t("Helpful"));
8PostAdjustCommentVotesOptions opts;
9opts.timeout = boost::optional<int>(30);
10api->postAdjustCommentVotes(tenantId, commentId, params, opts).then([](pplx::task<std::shared_ptr<AdjustVotesResponse>> t){
11 try{
12 auto resp = t.get();
13 }catch(const std::exception& e){
14 }
15});
16

wyślijEksportAPI Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
optionsconst PostApiExportOptions&Yes

Odpowiedź

Zwraca: ModerationExportResponse

Przykład

postApiExport Przykład
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3PostApiExportOptions options;
4options.format = utility::string_t(U("json"));
5options.email = utility::string_t(U("reports@example.com"));
6options.startDate = boost::optional<utility::datetime>(utility::datetime::from_string(U("2023-01-01T00:00:00Z")));
7options.endDate = boost::optional<utility::datetime>(utility::datetime::from_string(U("2023-01-31T23:59:59Z")));
8
9api->postApiExport(tenantId, options)
10 .then([](std::shared_ptr<ModerationExportResponse> response) {
11 if (response) {
12 // obsłuż udaną odpowiedź eksportu
13 }
14 })
15 .wait();
16

wyślijBanUżytkownikaZKomentarza Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
commentIdstringTak
optionsconst PostBanUserFromCommentOptions&Tak

Odpowiedź

Zwraca: BanUserFromCommentResult

Przykład

postBanUserFromComment Przykład
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("comment-456789");
4PostBanUserFromCommentOptions options;
5options.reason = boost::optional<utility::string_t>(U("spam"));
6options.durationDays = boost::optional<int>(30);
7
8api->postBanUserFromComment(tenantId, commentId, options)
9 .then([](std::shared_ptr<BanUserFromCommentResult> result) {
10 // obsługa wyniku
11 })
12 .then([](pplx::task<void> t) {
13 try { t.get(); } catch (const std::exception& e) { /* obsługa błędów */ }
14 });
15

wyślijCofnięcieBanaUżytkownika Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
banUserUndoParamsBanUserUndoParamsYes
ssostringNo

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

postBanUserUndo Przykład
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3BanUserUndoParams banParams;
4banParams.userId = utility::string_t(U("user-567"));
5banParams.reason = utility::string_t(U("reinstated"));
6boost::optional<utility::string_t> sso = utility::string_t(U("sso-token-abc"));
7
8api->postBanUserUndo(tenantId, banParams, sso).then([](std::shared_ptr<APIEmptyResponse> resp){
9 // obsłuż sukces
10});
11

wyślijMasowePodsumowaniePrzedBanem Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
bulkPreBanParamsBulkPreBanParamsYes
optionsconst PostBulkPreBanSummaryOptions&Yes

Odpowiedź

Zwraca: BulkPreBanSummary

Przykład

postBulkPreBanSummary Przykład
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3BulkPreBanParams bulkPreBanParams;
4bulkPreBanParams.emails = {
5 utility::conversions::to_string_t("spam1@example.com"),
6 utility::conversions::to_string_t("spam2@example.com")
7};
8bulkPreBanParams.reason = utility::conversions::to_string_t("spam");
9PostBulkPreBanSummaryOptions options;
10options.requestId = boost::optional<utility::string_t>(utility::conversions::to_string_t("req-456"));
11api->postBulkPreBanSummary(tenantId, bulkPreBanParams, options)
12 .then([](std::shared_ptr<BulkPreBanSummary> result) {
13 (void)result;
14 });
15

wyślijKomentarzePoId Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
commentsByIdsParamsCommentsByIdsParamsTak
ssostringNie

Odpowiedź

Zwraca: ModerationAPIChildCommentsResponse

Przykład

Przykład postCommentsByIds
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3CommentsByIdsParams params;
4params.commentIds = {U("cmt-001"), U("cmt-002")};
5boost::optional<utility::string_t> sso = U("sso-token-abc");
6api->postCommentsByIds(tenantId, params, sso).then([](pplx::task<std::shared_ptr<ModerationAPIChildCommentsResponse>> t){
7 try{
8 auto resp = t.get();
9 auto copy = std::make_shared<ModerationAPIChildCommentsResponse>(*resp);
10 }catch(const std::exception&){ }
11});
12

wyślijOznaczenieKomentarza Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
commentIdstringYes
optionsconst PostFlagCommentOptions&Yes

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

Przykład postFlagComment
Copy Copy
1
2PostFlagCommentOptions options;
3options.reason = boost::optional<utility::string_t>(U("spam"));
4options.reportedBy = boost::optional<utility::string_t>(U("moderator@example.com"));
5
6api->postFlagComment(U("my-tenant-123"), U("comment-456"), options)
7 .then([](std::shared_ptr<APIEmptyResponse> resp){
8 (void)resp;
9 })
10 .then([](pplx::task<void> t){
11 try{
12 t.get();
13 }catch(const std::exception&){
14 }
15 });
16

wyślijUsunięcieKomentarza Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
commentIdstringYes
optionsconst PostRemoveCommentOptions&Yes

Odpowiedź

Zwraca: PostRemoveCommentApiResponse

Przykład

postRemoveComment Przykład
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3auto commentId = utility::string_t(U("cmt-456789"));
4PostRemoveCommentOptions options;
5options.permanent = boost::optional<bool>(true);
6api->postRemoveComment(tenantId, commentId, options)
7 .then([](pplx::task<std::shared_ptr<PostRemoveCommentApiResponse>> task) {
8 try {
9 auto response = task.get();
10 // Przetwórz odpowiedź
11 } catch (const std::exception& ex) {
12 // Obsłuż błąd
13 }
14 });
15

wyślijPrzywrócenieUsuniętegoKomentarza Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
commentIdstringTak
optionsconst PostRestoreDeletedCommentOptions&Tak

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

Przykład postRestoreDeletedComment
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("cmt-987654");
4PostRestoreDeletedCommentOptions options;
5options.reason = boost::optional<utility::string_t>(U("Restoring after accidental delete"));
6options.notifyUser = boost::optional<bool>(true);
7api->postRestoreDeletedComment(tenantId, commentId, options)
8 .then([](std::shared_ptr<APIEmptyResponse> resp){
9 });
10

wyślijUstawStatusZatwierdzeniaKomentarza Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
commentIdstringYes
optionsconst PostSetCommentApprovalStatusOptions&Yes

Odpowiedź

Zwraca: SetCommentApprovedResponse

Przykład

postSetCommentApprovalStatus Przykład
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto commentId = utility::conversions::to_string_t("comment-abc123");
4auto options = std::make_shared<PostSetCommentApprovalStatusOptions>();
5options->approved = boost::optional<bool>(true);
6options->reason = boost::optional<utility::string_t>(utility::conversions::to_string_t("Inappropriate content"));
7api->postSetCommentApprovalStatus(tenantId, commentId, *options)
8 .then([](pplx::task<std::shared_ptr<SetCommentApprovedResponse>> task) {
9 try {
10 auto response = task.get();
11 } catch (const std::exception& ex) {
12 }
13 });
14

wyślijUstawStatusRecenzjiKomentarza Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
commentIdstringTak
optionsconst PostSetCommentReviewStatusOptions&Tak

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

postSetCommentReviewStatus Przykład
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto commentId = utility::conversions::to_string_t("cmt-456789");
4PostSetCommentReviewStatusOptions opts;
5opts.status = utility::conversions::to_string_t("approved");
6opts.note = boost::optional<utility::string_t>(utility::conversions::to_string_t("Looks good"));
7api->postSetCommentReviewStatus(tenantId, commentId, opts)
8 .then([](pplx::task<std::shared_ptr<APIEmptyResponse>> t){
9 try{
10 auto resp = t.get();
11 }catch(const std::exception& e){
12 }
13 });
14

wyślijUstawStatusSpamuKomentarza Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
commentIdstringYes
optionsconst PostSetCommentSpamStatusOptions&Yes

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

Przykład postSetCommentSpamStatus
Copy Copy
1
2auto options = PostSetCommentSpamStatusOptions{};
3options.isSpam = true;
4options.reason = boost::optional<utility::string_t>{U"User reported spam"};
5
6api->postSetCommentSpamStatus(U("my-tenant-123"), U("comment-789"), options)
7 .then([](std::shared_ptr<APIEmptyResponse> resp) {
8 auto copy = std::make_shared<APIEmptyResponse>(*resp);
9 })
10 .then([](pplx::task<void> t) {
11 try { t.get(); } catch(const std::exception&) {}
12 });
13

wyślijUstawTekstKomentarza Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
commentIdstringTak
setCommentTextParamsSetCommentTextParamsTak
optionsconst PostSetCommentTextOptions&Tak

Odpowiedź

Zwraca: SetCommentTextResponse

Przykład

postSetCommentText Przykład
Copy Copy
1
2auto tenantId = U("my-tenant-123");
3auto commentId = U("comment-456");
4SetCommentTextParams params;
5params.text = U("Revised comment content");
6PostSetCommentTextOptions options;
7options.requestId = boost::optional<utility::string_t>(U("req-987"));
8api->postSetCommentText(tenantId, commentId, params, options)
9 .then([](std::shared_ptr<SetCommentTextResponse> resp) {
10 auto updatedId = resp->commentId;
11 })
12 .then([](pplx::task<void> t) {
13 try { t.get(); } catch (const std::exception&) {}
14 });
15

wyślijCofnięcieOznaczeniaKomentarza Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
commentIdstringTak
optionsconst PostUnFlagCommentOptions&Tak

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

Przykład postUnFlagComment
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("cmt-456789");
4PostUnFlagCommentOptions opts;
5opts.notifyUser = boost::optional<bool>(true);
6api->postUnFlagComment(tenantId, commentId, opts)
7 .then([](std::shared_ptr<APIEmptyResponse> resp) {
8 // przetwarzanie może być wykonane tutaj
9 })
10 .then([](pplx::task<void> t) {
11 try { t.get(); } catch (const std::exception&) {}
12 });
13

wyślijGłos Internal Link

Parametry

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
optionsconst PostVoteOptions&Yes

Odpowiedź

Zwraca: VoteResponse

Przykład

Przykład postVote
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t commentId = U("cmt-456789");
4PostVoteOptions options;
5options.upvote = boost::make_optional(true);
6options.reason = boost::make_optional<std::string>("Inappropriate content");
7api->postVote(tenantId, commentId, options)
8 .then([](pplx::task<std::shared_ptr<VoteResponse>> t) {
9 try {
10 auto resp = t.get();
11 auto count = resp->voteCount;
12 } catch (const std::exception& e) {
13 }
14 });
15

przyznajOdznakę Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
badgeIdstringYes
optionsconst PutAwardBadgeOptions&Yes

Odpowiedź

Zwraca: AwardUserBadgeResponse

Przykład

przykład putAwardBadge
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto badgeId = utility::conversions::to_string_t("badge-456");
4PutAwardBadgeOptions opts;
5opts.userId = utility::conversions::to_string_t("user-42");
6opts.note = boost::optional<utility::string_t>(utility::conversions::to_string_t("Excellent comment"));
7api->putAwardBadge(tenantId, badgeId, opts).then([](pplx::task<std::shared_ptr<AwardUserBadgeResponse>> t){
8 try{
9 auto resp = t.get();
10 auto respCopy = std::make_shared<AwardUserBadgeResponse>(*resp);
11 }catch(const std::exception& e){
12 }
13});
14

zamknijWątek Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
urlIdstringTak
ssostringNie

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

Przykład putCloseThread
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-4321"));
3auto urlId = utility::string_t(U("article-9876"));
4boost::optional<utility::string_t> sso = boost::make_optional<utility::string_t>(U("user@example.com"));
5
6api->putCloseThread(tenantId, urlId, sso).then([](pplx::task<std::shared_ptr<APIEmptyResponse>> task){
7 try{
8 auto response = task.get();
9 }catch(const std::exception&){
10 }
11});
12

usuńOdznakę Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
badgeIdstringYes
optionsconst PutRemoveBadgeOptions&Yes

Odpowiedź

Zwraca: RemoveUserBadgeResponse

Przykład

Przykład putRemoveBadge
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t badgeId = U("badge-abc-456");
4PutRemoveBadgeOptions options;
5options.reason = boost::optional<utility::string_t>(U("Spamming"));
6api->putRemoveBadge(tenantId, badgeId, options).then([](std::shared_ptr<RemoveUserBadgeResponse> resp) {
7 (void)resp;
8});
9

otwórzPonownieWątek Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
urlIdstringTak
ssostringNie

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

Przykład putReopenThread
Copy Copy
1
2api->putReopenThread(utility::string_t(U("my-tenant-123")), utility::string_t(U("thread-456")), boost::make_optional<utility::string_t>(U("user@example.com")))
3 .then([](std::shared_ptr<APIEmptyResponse> result){
4 std::cout << "Thread reopened" << std::endl;
5 });
6

ustawWspółczynnikZaufania Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
optionsconst SetTrustFactorOptions&Tak

Odpowiedź

Zwraca: SetUserTrustFactorResponse

Przykład

Przykład setTrustFactor
Copy Copy
1
2SetTrustFactorOptions opts;
3opts.userId = utility::conversions::to_string_t("user@example.com");
4opts.trustFactor = 8;
5opts.reason = boost::optional<utility::string_t>(utility::conversions::to_string_t("Spam check passed"));
6api->setTrustFactor(utility::conversions::to_string_t("my-tenant-123"), opts)
7 .then([](pplx::task<std::shared_ptr<SetUserTrustFactorResponse>> task) {
8 try {
9 auto response = task.get();
10 } catch (const std::exception&) {
11 }
12 });
13

utwórzModeratora Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
createModeratorBodyCreateModeratorBodyYes

Odpowiedź

Zwraca: CreateModeratorResponse

Przykład

createModerator Przykład
Copy Copy
1
2CreateModeratorBody moderatorBody;
3moderatorBody.email = utility::conversions::to_string_t("moderator@example.com");
4moderatorBody.name = utility::conversions::to_string_t("John Moderator");
5moderatorBody.notes = boost::optional<utility::string_t>(utility::conversions::to_string_t("Community moderator"));
6api->createModerator(utility::conversions::to_string_t("my-tenant-123"), moderatorBody)
7 .then([](std::shared_ptr<CreateModeratorResponse> resp) {});
8

usuńModeratora Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
idstringYes
sendEmailstringNo

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

Przykład deleteModerator
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto moderatorId = utility::conversions::to_string_t("mod-456");
4boost::optional<utility::string_t> sendEmail = utility::conversions::to_string_t("admin@example.com");
5api->deleteModerator(tenantId, moderatorId, sendEmail)
6 .then([](std::shared_ptr<APIEmptyResponse> resp) {
7 // handle success
8 });
9

pobierzModeratora Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak

Odpowiedź

Zwraca: GetModeratorResponse

Przykład

Przykład getModerator
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3auto moderatorId = utility::string_t(U("moderator-789"));
4api->getModerator(tenantId, moderatorId)
5 .then([](pplx::task<std::shared_ptr<GetModeratorResponse>> t) {
6 try {
7 auto response = t.get();
8 } catch (const std::exception&) {
9 }
10 });
11

pobierzModeratorów Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
skipdoubleNie

Odpowiedź

Zwraca: GetModeratorsResponse

Przykład

Przykład getModerators
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<double> skip = 10.0;
4api->getModerators(tenantId, skip).then([](pplx::task<std::shared_ptr<GetModeratorsResponse>> t){
5 auto response = t.get();
6});
7

wyślijZaproszenie Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
fromNamestringTak

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

Przykład sendInvite
Copy Copy
1
2boost::optional<utility::string_t> cc = utility::conversions::to_string_t("cc@example.com");
3api->sendInvite(
4 utility::conversions::to_string_t("my-tenant-123"),
5 utility::conversions::to_string_t("invitee@example.com"),
6 utility::conversions::to_string_t("John Doe")
7).then([](std::shared_ptr<APIEmptyResponse> resp) {
8 // obsłuż pomyślne zaproszenie
9});
10

zaktualizujModeratora Internal Link

Parametry

NameTypeRequiredDescription
tenantIdstringYes
idstringYes
updateModeratorBodyUpdateModeratorBodyYes

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

Przykład updateModerator
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto moderatorId = utility::conversions::to_string_t("mod-789");
4UpdateModeratorBody body;
5body.email = utility::conversions::to_string_t("moderator@example.com");
6body.isActive = true;
7body.notes = boost::optional<utility::string_t>(utility::conversions::to_string_t("Senior moderator"));
8api->updateModerator(tenantId, moderatorId, body)
9 .then([](std::shared_ptr<APIEmptyResponse>) {})
10 .then([](pplx::task<void> t) { try { t.get(); } catch (const std::exception&) {} });
11

usuńLiczbęPowiadomień Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

Przykład deleteNotificationCount
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto notificationId = utility::conversions::to_string_t("notif-789");
4
5api->deleteNotificationCount(tenantId, notificationId)
6 .then([](std::shared_ptr<APIEmptyResponse> resp) {})
7 .then([](pplx::task<void> t) { try { t.get(); } catch (const std::exception&) {} });
8

pobierzZbuforowanąLiczbęPowiadomień Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringYes

Response

Returns: GetCachedNotificationCountResponse

Example

getCachedNotificationCount Przykład
Copy Copy
1
2auto tenantId = boost::optional<utility::string_t>(utility::conversions::to_string_t("my-tenant-123"));
3auto userId = boost::optional<utility::string_t>(utility::conversions::to_string_t("user-456"));
4
5api->getCachedNotificationCount(tenantId.value(), userId.value())
6 .then([](pplx::task<std::shared_ptr<GetCachedNotificationCountResponse>> task) {
7 try {
8 auto response = task.get();
9 // process response
10 } catch (const std::exception&) {
11 // handle error
12 }
13 });
14

pobierzLiczbęPowiadomień Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
optionsconst GetNotificationCountOptions&Tak

Odpowiedź

Zwraca: GetNotificationCountResponse

Przykład

Przykład getNotificationCount
Copy Copy
1
2auto tenantId = U("my-tenant-123");
3GetNotificationCountOptions options;
4options.filter = boost::optional<utility::string_t>(U("unread"));
5options.maxCount = boost::optional<int>(10);
6api->getNotificationCount(tenantId, options)
7 .then([](pplx::task<std::shared_ptr<GetNotificationCountResponse>> t) {
8 try {
9 auto response = t.get();
10 } catch (const std::exception& ex) {
11 }
12 });
13

pobierzPowiadomienia Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
optionsconst GetNotificationsOptions&Tak

Odpowiedź

Zwraca: GetNotificationsResponse

Przykład

Przykład getNotifications
Copy Copy
1
2GetNotificationsOptions options;
3options.limit = 20;
4options.after = U("cursor-123");
5api->getNotifications(U("my-tenant-123"), options)
6 .then([](std::shared_ptr<GetNotificationsResponse> resp) {
7 (void)resp;
8 });
9

zaktualizujPowiadomienie Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
updateNotificationBodyUpdateNotificationBodyTak
userIdstringNie

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

Przykład updateNotification
Copy Copy
1
2auto updateBody = std::make_shared<UpdateNotificationBody>();
3updateBody->title = utility::conversions::to_string_t("System Maintenance");
4updateBody->message = utility::conversions::to_string_t("Scheduled downtime at 02:00 UTC.");
5api->updateNotification(
6 utility::conversions::to_string_t("my-tenant-123"),
7 utility::conversions::to_string_t("notif-456"),
8 updateBody,
9 boost::optional<utility::string_t>(utility::conversions::to_string_t("admin-user"))
10).then([](std::shared_ptr<APIEmptyResponse>){});
11

utwórzReakcjęStronyV1 Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
urlIdstringYes
titlestringNo

Odpowiedź

Zwraca: CreateV1PageReact

Przykład

Przykład createV1PageReact
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3auto urlId = utility::string_t(U("https://example.com/articles/789"));
4boost::optional<utility::string_t> title = utility::string_t(U("Understanding Async C++"));
5api->createV1PageReact(tenantId, urlId, title).then([](pplx::task<std::shared_ptr<CreateV1PageReact>> task) {
6 try {
7 auto response = task.get();
8 } catch (const std::exception&) {
9 }
10});
11

utwórzReakcjęStronyV2 Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
urlIdstringYes
idstringYes
titlestringNo

Odpowiedź

Zwraca: CreateV1PageReact

Przykład

Przykład createV2PageReact
Copy Copy
1
2api->createV2PageReact(
3 utility::string_t(U("my-tenant-789")),
4 utility::string_t(U("https://example.com/articles/12345")),
5 utility::string_t(U("user-42")),
6 boost::optional<utility::string_t>(U("Helpful"))
7).then([](pplx::task<std::shared_ptr<CreateV1PageReact>> task){
8 try{
9 auto response = task.get();
10 }catch(const std::exception&){ }
11});
12

usuńReakcjęStronyV1 Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
urlIdstringYes

Odpowiedź

Zwraca: CreateV1PageReact

Przykład

deleteV1PageReact Przykład
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto urlId = utility::conversions::to_string_t("page-abc-456");
4api->deleteV1PageReact(tenantId, urlId).then([](pplx::task<std::shared_ptr<CreateV1PageReact>> task){
5 try{
6 auto response = task.get();
7 boost::optional<std::shared_ptr<CreateV1PageReact>> optResponse = response;
8 }catch(...){
9 }
10});
11

usuńReakcjęStronyV2 Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
urlIdstringTak
idstringTak

Odpowiedź

Zwraca: CreateV1PageReact

Przykład

deleteV2PageReact Przykład
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto urlId = utility::conversions::to_string_t("page-456");
4auto reactId = utility::conversions::to_string_t("react-789");
5boost::optional<utility::string_t> correlationId = utility::conversions::to_string_t("corr-001");
6
7api->deleteV2PageReact(tenantId, urlId, reactId)
8 .then([](pplx::task<std::shared_ptr<CreateV1PageReact>> t) {
9 auto result = t.get();
10 });
11

pobierzPolubieniaStronyV1 Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
urlIdstringTak

Odpowiedź

Zwraca: GetV1PageLikes

Przykład

Przykład getV1PageLikes
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto urlId = utility::conversions::to_string_t("article-789");
4boost::optional<utility::string_t> filter;
5
6api->getV1PageLikes(tenantId, urlId).then([=](pplx::task<std::shared_ptr<GetV1PageLikes>> task){
7 try{
8 auto raw = task.get();
9 auto likes = std::make_shared<GetV1PageLikes>(*raw);
10 auto total = likes->totalLikes;
11 }catch(...){
12 }
13});
14

pobierzReakcjeStronyV2 Internal Link

Parameters

NazwaTypWymaganeOpis
tenantIdstringTak
urlIdstringTak

Odpowiedź

Zwraca: GetV2PageReacts

Przykład

Przykład getV2PageReacts
Copy Copy
1
2auto tenantId = utility::string_t("my-tenant-123");
3auto urlId = utility::string_t("https://example.com/article/42");
4boost::optional<utility::string_t> locale = utility::string_t("en-US");
5api->getV2PageReacts(tenantId, urlId)
6 .then([locale](std::shared_ptr<GetV2PageReacts> reacts){
7 if (locale) {}
8 })
9 .then([](pplx::task<void> t){
10 try { t.get(); } catch (...) {}
11 });
12

pobierzUżytkownikówReakcjiStronyV2 Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
urlIdstringTak
idstringTak

Odpowiedź

Zwraca: GetV2PageReactUsersResponse

Przykład

getV2PageReactUsers Przykład
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto urlId = utility::conversions::to_string_t("page-456");
4auto id = utility::conversions::to_string_t("react-789");
5boost::optional<utility::string_t> maybeFilter;
6api->getV2PageReactUsers(tenantId, urlId, id).then([](pplx::task<std::shared_ptr<GetV2PageReactUsersResponse>> task){
7 try{
8 auto response = task.get();
9 // Użyj odpowiedzi w razie potrzeby
10 }catch(const std::exception&){
11 // Obsłuż błąd
12 }
13});
14

dodajStronę Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createAPIPageDataCreateAPIPageDataYes

Response

Returns: AddPageAPIResponse

Example

Przykład addPage
Copy Copy
1
2auto createData = CreateAPIPageData{};
3createData.title = utility::string_t(U("Welcome Page"));
4createData.url = utility::string_t(U("https://example.com/welcome"));
5createData.description = boost::optional<utility::string_t>(utility::string_t(U("Landing page for new users")));
6
7api->addPage(utility::string_t(U("my-tenant-123")), createData)
8 .then([](std::shared_ptr<AddPageAPIResponse> response) {
9 if (response && response->success) {
10 // obsłuż pomyślne dodanie
11 } else {
12 // obsłuż błąd
13 }
14 });
15

usuńStronę Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak

Odpowiedź

Zwraca: DeletePageAPIResponse

Przykład

deletePage Przykład
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto pageId = utility::conversions::to_string_t("page-456");
4
5api->deletePage(tenantId, pageId)
6 .then([](pplx::task<std::shared_ptr<DeletePageAPIResponse>> t) {
7 try {
8 auto response = t.get();
9 // przetwarzaj odpowiedź w razie potrzeby
10 } catch (const std::exception& ex) {
11 // obsłuż błąd
12 }
13 });
14

pobierzUżytkownikówOffline Internal Link

Past commenters on the page who are NOT currently online. Sorted by displayName.
Use this after exhausting /users/online to render a "Members" section.
Cursor pagination on commenterName: server walks the partial {tenantId, urlId, commenterName} index from afterName forward via $gt, no $skip cost.

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
optionsconst GetOfflineUsersOptions&Yes

Response

Returns: PageUsersOfflineResponse

Example

Przykład getOfflineUsers
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t urlId = U("page-456");
4GetOfflineUsersOptions options;
5options.limit = boost::optional<int>(50);
6options.includeDetails = boost::optional<bool>(true);
7
8api->getOfflineUsers(tenantId, urlId, options)
9 .then([](pplx::task<std::shared_ptr<PageUsersOfflineResponse>> t) {
10 try {
11 auto response = t.get();
12 } catch (const std::exception&) {
13 }
14 });
15

pobierzUżytkownikówOnline Internal Link

Obecnie online widzowie strony: osoby, których sesja websocket jest subskrybowana do tej strony w tej chwili.
Zwraca anonCount + totalCount (subskrybenci w całym pokoju, w tym anonimowi widzowie, których nie enumerujemy).

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
urlIdstringTak
optionsconst GetOnlineUsersOptions&Tak

Odpowiedź

Zwraca: PageUsersOnlineResponse

Przykład

Przykład getOnlineUsers
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t urlId = U("article-456");
4auto options = std::make_shared<GetOnlineUsersOptions>();
5options->maxResults = boost::optional<int>(100);
6options->includeInactive = boost::optional<bool>(false);
7api->getOnlineUsers(tenantId, urlId, *options).then([](pplx::task<std::shared_ptr<PageUsersOnlineResponse>> task){
8 try{
9 auto response = task.get();
10 }catch(const std::exception&){
11 }
12});
13

pobierzStronęPoIdURL Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
urlIdstringTak

Odpowiedź

Zwraca: GetPageByURLIdAPIResponse

Przykład

Przykład getPageByURLId
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto urlId = utility::conversions::to_string_t("page-456");
4boost::optional<utility::string_t> correlationId = boost::make_optional(utility::conversions::to_string_t("corr-789"));
5
6api->getPageByURLId(tenantId, urlId)
7 .then([correlationId](pplx::task<std::shared_ptr<GetPageByURLIdAPIResponse>> task) {
8 try {
9 auto response = task.get();
10 } catch (const std::exception&) {
11 }
12 });
13

pobierzStrony Internal Link

Parametry

NameTypeWymaganeOpis
tenantIdstringTak

Odpowiedź

Zwraca: GetPagesAPIResponse

Przykład

Przykład getPages
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3api->getPages(tenantId)
4 .then([](pplx::task<std::shared_ptr<GetPagesAPIResponse>> task) {
5 try {
6 auto response = task.get();
7 boost::optional<utility::string_t> nextCursor = response->nextCursor;
8 } catch (const std::exception&) {
9 }
10 });
11

pobierzStronyPublicznie Internal Link

List pages for a tenant. Used by the FChat desktop client to populate its room list.
Requires enableFChat to be true on the resolved custom config for each page.
Pages that require SSO are filtered against the requesting user's group access.

Parameters

NameTypeRequiredDescription
tenantIdstringTak
optionsconst GetPagesPublicOptions&Tak

Response

Returns: GetPublicPagesResponse

Example

Przykład getPagesPublic
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3GetPagesPublicOptions options;
4options.limit = boost::optional<int>(50);
5options.cursor = boost::optional<utility::string_t>(U("cursor-token"));
6api->getPagesPublic(tenantId, options).then([](pplx::task<std::shared_ptr<GetPublicPagesResponse>> task){
7 try{
8 auto response = task.get();
9 // process response if needed
10 }catch(const std::exception&){
11 // handle error if needed
12 }
13});
14

pobierzInfoUżytkowników Internal Link

Bulk user info for a tenant. Given userIds, return display info from User / SSOUser.
Used by the comment widget to enrich users that just appeared via a presence event.
No page context: privacy is enforced uniformly (private profiles are masked).

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idsstringYes

Response

Returns: PageUsersInfoResponse

Example

getUsersInfo Przykład
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t ids = U("alice@example.com,bob@example.com");
4boost::optional<utility::string_t> locale = boost::make_optional(U("en-US"));
5
6api->getUsersInfo(tenantId, ids).then([](pplx::task<std::shared_ptr<PageUsersInfoResponse>> t){
7 try{
8 auto response = t.get();
9 // process response
10 }catch(const std::exception&){
11 // handle error
12 }
13});
14

modyfikujStronę Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
updateAPIPageDataUpdateAPIPageDataTak

Odpowiedź

Returns: PatchPageAPIResponse

Przykład

patchPage Przykład
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t pageId = U("page-789");
4UpdateAPIPageData update;
5update.title = boost::optional<utility::string_t>(U("Updated Page Title"));
6update.metadata = boost::optional<utility::string_t>(U("{\"author\":\"jane.doe@example.com\"}"));
7api->patchPage(tenantId, pageId, update)
8 .then([](std::shared_ptr<PatchPageAPIResponse> response) {
9 if (response && response->isSuccess) {
10 // obsłuż sukces
11 }
12 })
13 .then([](pplx::task<void> t) {
14 try { t.get(); } catch (const std::exception&) {}
15 });
16

usuńOczekująceZdarzenieWebhook Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
idstringYes

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

deletePendingWebhookEvent Przykład
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto eventId = utility::conversions::to_string_t("event-987654");
4boost::optional<utility::string_t> optTenant = tenantId;
5
6api->deletePendingWebhookEvent(optTenant.value(), eventId)
7 .then([](std::shared_ptr<APIEmptyResponse> resp) {
8 (void)resp;
9 })
10 .then([](pplx::task<void> t) {
11 try { t.get(); } catch (const std::exception& e) { }
12 });
13

pobierzLiczbęOczekującychZdarzeńWebhook Internal Link


Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
optionsconst GetPendingWebhookEventCountOptions&Tak

Odpowiedź

Zwraca: GetPendingWebhookEventCountResponse

Przykład

Przykład getPendingWebhookEventCount
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3GetPendingWebhookEventCountOptions opts;
4opts.filter = boost::optional<utility::string_t>(utility::conversions::to_string_t("active"));
5api->getPendingWebhookEventCount(tenantId, opts)
6 .then([](std::shared_ptr<GetPendingWebhookEventCountResponse> resp){
7 auto count = resp->getCount();
8 });
9

pobierzOczekująceZdarzeniaWebhook Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
optionsconst GetPendingWebhookEventsOptions&Yes

Odpowiedź

Zwraca: GetPendingWebhookEventsResponse

Przykład

Przykład getPendingWebhookEvents
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3GetPendingWebhookEventsOptions opts;
4opts.pageSize = boost::optional<int>(100);
5opts.startAfter = boost::optional<utility::string_t>(U("event-abc-456"));
6api->getPendingWebhookEvents(tenantId, opts)
7 .then([](pplx::task<std::shared_ptr<GetPendingWebhookEventsResponse>> task) {
8 try {
9 auto resp = task.get();
10 auto copy = std::make_shared<GetPendingWebhookEventsResponse>(*resp);
11 } catch (const std::exception&) {}
12 });
13

utwórzKonfiguracjęPytania Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
createQuestionConfigBodyCreateQuestionConfigBodyYes

Odpowiedź

Zwraca: CreateQuestionConfigResponse

Przykład

Przykład createQuestionConfig
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3CreateQuestionConfigBody configBody;
4configBody.question = utility::string_t(U("How satisfied are you with our service?"));
5configBody.required = true;
6configBody.defaultAnswer = boost::optional<utility::string_t>(utility::string_t(U("Very satisfied")));
7api->createQuestionConfig(tenantId, configBody).then([](pplx::task<std::shared_ptr<CreateQuestionConfigResponse>> task){
8 try{
9 auto response = task.get();
10 }catch(const std::exception&){}
11});
12

usuńKonfiguracjęPytania Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

deleteQuestionConfig Przykład
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto configId = utility::conversions::to_string_t("question-config-456");
4
5api->deleteQuestionConfig(tenantId, configId)
6 .then([](std::shared_ptr<APIEmptyResponse> resp) {
7 // obsłuż pomyślne usunięcie
8 })
9 .then([](pplx::task<void> t) {
10 try {
11 t.get();
12 } catch (const std::exception&) {
13 // obsłuż błąd
14 }
15 });
16

pobierzKonfiguracjęPytania Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak

Odpowiedź

Zwraca: GetQuestionConfigResponse

Przykład

Przykład getQuestionConfig
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto questionId = utility::conversions::to_string_t("question-456");
4
5api->getQuestionConfig(tenantId, questionId)
6 .then([](pplx::task<std::shared_ptr<GetQuestionConfigResponse>> task) {
7 try {
8 auto response = task.get();
9 // Użyj odpowiedzi w razie potrzeby
10 } catch (const std::exception&) {
11 // Obsłuż błąd
12 }
13 });
14

pobierzKonfiguracjePytania Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
skipdoubleNo

Odpowiedź

Zwraca: GetQuestionConfigsResponse

Przykład

Przykład getQuestionConfigs
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3boost::optional<double> skip = 10.0;
4api->getQuestionConfigs(tenantId, skip).then([](std::shared_ptr<GetQuestionConfigsResponse> resp){
5 auto config = std::make_shared<GetQuestionConfigsResponse>(*resp);
6});
7

zaktualizujKonfiguracjęPytania Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
updateQuestionConfigBodyUpdateQuestionConfigBodyTak

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

updateQuestionConfig Przykład
Copy Copy
1
2UpdateQuestionConfigBody updateBody;
3updateBody.enabled = true;
4updateBody.maxResponses = boost::optional<int>{10};
5updateBody.notes = boost::optional<utility::string_t>{U("Config updated via SDK")};
6
7api->updateQuestionConfig(U("my-tenant-123"), U("config-789"), updateBody)
8 .then([](std::shared_ptr<APIEmptyResponse> resp) {
9 })
10 .then([](pplx::task<void> t) {
11 try { t.get(); } catch (const std::exception&) {}
12 });
13

utwórzWynikPytania Internal Link

Parametry

NameTypeRequiredDescription
tenantIdstringYes
createQuestionResultBodyCreateQuestionResultBodyYes

Odpowiedź

Zwraca: CreateQuestionResultResponse

Przykład

createQuestionResult Przykład
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3CreateQuestionResultBody body;
4body.questionId = U("question-456");
5body.result = U("approved");
6body.comment = boost::optional<utility::string_t>(U("Looks good"));
7api->createQuestionResult(tenantId, body)
8 .then([=](pplx::task<std::shared_ptr<CreateQuestionResultResponse>> t) {
9 try {
10 auto resp = t.get();
11 } catch (const std::exception&) {
12 }
13 });
14

usuńWynikPytania Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

Przykład deleteQuestionResult
Copy Copy
1
2boost::optional<utility::string_t> optTenant = utility::conversions::to_string_t( "my-tenant-123" );
3utility::string_t questionId = utility::conversions::to_string_t( "question-456" );
4
5if ( optTenant )
6{
7 api->deleteQuestionResult( *optTenant, questionId )
8 .then( []( pplx::task<std::shared_ptr<APIEmptyResponse>> t )
9 {
10 try
11 {
12 auto resp = t.get();
13 // obsługa sukcesu
14 }
15 catch ( const std::exception& e )
16 {
17 // obsługa błędu
18 }
19 } );
20}
21

pobierzWynikPytania Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
idstringYes

Odpowiedź

Zwraca: GetQuestionResultResponse

Przykład

getQuestionResult Przykład
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3auto questionId = utility::string_t(U("question-789"));
4boost::optional<utility::string_t> optionalParam = boost::none;
5
6api->getQuestionResult(tenantId, questionId)
7 .then([](pplx::task<std::shared_ptr<GetQuestionResultResponse>> task) {
8 try {
9 auto response = task.get();
10 } catch (const std::exception&) {
11 }
12 });
13

pobierzWynikiPytania Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
optionsconst GetQuestionResultsOptions&Tak

Odpowiedź

Zwraca: GetQuestionResultsResponse

Przykład

Przykład getQuestionResults
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3GetQuestionResultsOptions options;
4options.questionId = boost::optional<utility::string_t>(U("question-456"));
5options.includeDeleted = boost::optional<bool>(false);
6api->getQuestionResults(tenantId, options)
7 .then([](pplx::task<std::shared_ptr<GetQuestionResultsResponse>> t) {
8 auto response = t.get();
9 // obsłuż odpowiedź
10 });
11

zaktualizujWynikPytania Internal Link


Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
idstringYes
updateQuestionResultBodyUpdateQuestionResultBodyYes

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

updateQuestionResult Przykład
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3auto questionId = utility::string_t(U("question-456"));
4UpdateQuestionResultBody body;
5body.result = U("approved");
6body.note = boost::optional<utility::string_t>(U("Reviewed by admin"));
7api->updateQuestionResult(tenantId, questionId, body)
8 .then([](pplx::task<std::shared_ptr<APIEmptyResponse>> t) {
9 try {
10 auto respPtr = std::make_shared<APIEmptyResponse>(*t.get());
11 } catch (const std::exception&) {
12 }
13 });
14

agregujWynikiPytania Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
optionsconst AggregateQuestionResultsOptions&Yes

Odpowiedź

Zwraca: AggregateQuestionResultsResponse

Przykład

Przykład aggregateQuestionResults
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3AggregateQuestionResultsOptions opts;
4opts.questionId = utility::conversions::to_string_t("question-789");
5opts.startDate = boost::optional<utility::datetime>(utility::datetime::from_string(U("2023-01-01T00:00:00Z"), utility::datetime::ISO_8601));
6opts.endDate = boost::optional<utility::datetime>(utility::datetime::from_string(U("2023-01-31T23:59:59Z"), utility::datetime::ISO_8601));
7api->aggregateQuestionResults(tenantId, opts)
8 .then([](std::shared_ptr<AggregateQuestionResultsResponse> resp) {
9 static_cast<void>(resp);
10 });
11

masowaAgregacjaWynikówPytania Internal Link

Parametry

NameTypeRequiredDescription
tenantIdstringYes
bulkAggregateQuestionResultsRequestBulkAggregateQuestionResultsRequestYes
forceRecalculateboolNo

Odpowiedź

Zwraca: BulkAggregateQuestionResultsResponse

Przykład

Przykład bulkAggregateQuestionResults
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3BulkAggregateQuestionResultsRequest request;
4request.questionIds = {
5 utility::conversions::to_string_t("q123"),
6 utility::conversions::to_string_t("q456")
7};
8request.startDate = utility::datetime::from_string(U("2023-01-01T00:00:00Z"));
9request.endDate = utility::datetime::from_string(U("2023-01-31T23:59:59Z"));
10boost::optional<bool> forceRecalc = true;
11api->bulkAggregateQuestionResults(tenantId, request, forceRecalc)
12 .then([](pplx::task<std::shared_ptr<BulkAggregateQuestionResultsResponse>> t) {
13 auto resp = t.get();
14 });
15

połączKomentarzeZWynikamiPytania Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
optionsconst CombineCommentsWithQuestionResultsOptions&Tak

Odpowiedź

Zwraca: CombineQuestionResultsWithCommentsResponse

Przykład

combineCommentsWithQuestionResults Przykład
Copy Copy
1
2utility::string_t tenantId = utility::string_t("my-tenant-123");
3CombineCommentsWithQuestionResultsOptions options;
4options.questionId = utility::string_t("question-789");
5options.maxComments = boost::optional<int>(50);
6api->combineCommentsWithQuestionResults(tenantId, options).then(
7 [](pplx::task<std::shared_ptr<CombineQuestionResultsWithCommentsResponse>> task){
8 try{
9 auto respPtr = task.get();
10 auto combined = std::make_shared<CombineQuestionResultsWithCommentsResponse>(*respPtr);
11 // Użyj combined w razie potrzeby
12 }catch(const std::exception&){
13 }
14 });
15

dodajUżytkownikaSSO Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
createAPISSOUserDataCreateAPISSOUserDataTak

Odpowiedź

Zwraca: AddSSOUserAPIResponse

Przykład

Przykład addSSOUser
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3CreateAPISSOUserData createAPISSOUserData;
4createAPISSOUserData.email = utility::conversions::to_string_t("john.doe@example.com");
5createAPISSOUserData.externalId = utility::conversions::to_string_t("ext-9876");
6createAPISSOUserData.firstName = boost::optional<utility::string_t>(utility::conversions::to_string_t("John"));
7createAPISSOUserData.lastName = boost::optional<utility::string_t>(utility::conversions::to_string_t("Doe"));
8api->addSSOUser(tenantId, createAPISSOUserData)
9 .then([](std::shared_ptr<AddSSOUserAPIResponse> resp) {
10 });
11

usuńUżytkownikaSSO Internal Link

Parameters

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
optionsconst DeleteSSOUserOptions&Tak

Response

Zwraca: DeleteSSOUserAPIResponse

Example

Przykład deleteSSOUser
Copy Copy
1
2auto tenantId = U("my-tenant-123");
3auto userId = U("user-456");
4DeleteSSOUserOptions options;
5options.dryRun = boost::optional<bool>(true);
6api->deleteSSOUser(tenantId, userId, options).then([](std::shared_ptr<DeleteSSOUserAPIResponse> resp) {
7 if (resp) {
8 (void)resp;
9 }
10});
11

pobierzUżytkownikaSSOPoEmail Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
emailstringTak

Odpowiedź

Zwraca: GetSSOUserByEmailAPIResponse

Przykład

getSSOUserByEmail Przykład
Copy Copy
1
2auto correlationId = boost::optional<utility::string_t>(utility::conversions::to_string_t("corr-001"));
3
4api->getSSOUserByEmail(
5 utility::conversions::to_string_t("my-tenant-123"),
6 utility::conversions::to_string_t("user@example.com")
7).then([](pplx::task<std::shared_ptr<GetSSOUserByEmailAPIResponse>> t) {
8 try {
9 auto response = t.get();
10 } catch (const std::exception&) {
11 }
12});
13

pobierzUżytkownikaSSOPoId Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak

Odpowiedź

Returns: GetSSOUserByIdAPIResponse

Przykład

Przykład getSSOUserById
Copy Copy
1
2auto tenantId = U("my-tenant-123");
3auto ssoUserId = U("user-789");
4api->getSSOUserById(tenantId, ssoUserId)
5 .then([](std::shared_ptr<GetSSOUserByIdAPIResponse> resp) {
6 boost::optional<utility::string_t> email;
7 if (resp && resp->email) email = resp->email;
8 if (email) {
9 auto e = *email;
10 }
11 });
12

pobierzUżytkownikówSSO Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
skipint32_tNie

Odpowiedź

Zwraca: GetSSOUsersResponse

Przykład

Przykład getSSOUsers
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3boost::optional<int32_t> skip = 25;
4api->getSSOUsers(tenantId, skip).then([](pplx::task<std::shared_ptr<GetSSOUsersResponse>> t) {
5 try {
6 auto response = t.get();
7 } catch (const std::exception&) {
8 }
9});
10

modyfikujUżytkownikaSSO Internal Link

Parametry

NameTypeRequiredDescription
tenantIdstringTak
idstringTak
updateAPISSOUserDataUpdateAPISSOUserDataTak
updateCommentsboolNie

Odpowiedź

Zwraca: PatchSSOUserAPIResponse

Przykład

Przykład patchSSOUser
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t userId = U("user-456");
4UpdateAPISSOUserData updateData;
5updateData.email = U("jane.doe@example.com");
6updateData.displayName = U("Jane Doe");
7boost::optional<bool> updateComments = true;
8
9api->patchSSOUser(tenantId, userId, updateData, updateComments)
10 .then([](pplx::task<std::shared_ptr<PatchSSOUserAPIResponse>> t){
11 try{
12 auto resp = t.get();
13 (void)resp;
14 }catch(const std::exception&){
15 }
16 });
17

zapiszUżytkownikaSSO Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
updateAPISSOUserDataUpdateAPISSOUserDataTak
updateCommentsboolNie

Odpowiedź

Zwraca: PutSSOUserAPIResponse

Przykład

putSSOUser Przykład
Copy Copy
1
2UpdateAPISSOUserData userData;
3userData.email = utility::conversions::to_string_t("alice@example.com");
4userData.first_name = utility::conversions::to_string_t("Alice");
5userData.last_name = utility::conversions::to_string_t("Smith");
6userData.role = utility::conversions::to_string_t("moderator");
7
8api->putSSOUser(
9 utility::conversions::to_string_t("my-tenant-123"),
10 utility::conversions::to_string_t("alice.smith"),
11 userData,
12 boost::optional<bool>(true)
13).then([](pplx::task<std::shared_ptr<PutSSOUserAPIResponse>> t) {
14 auto response = t.get();
15});
16

utwórzSubskrypcję Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
createAPIUserSubscriptionDataCreateAPIUserSubscriptionDataTak

Odpowiedź

Zwraca: CreateSubscriptionAPIResponse

Przykład

Przykład createSubscription
Copy Copy
1
2auto tenantId = U("my-tenant-123");
3CreateAPIUserSubscriptionData subscriptionData;
4subscriptionData.email = U("user@example.com");
5subscriptionData.planId = U("premium-plan");
6subscriptionData.couponCode = boost::optional<utility::string_t>(U("WELCOME10"));
7api->createSubscription(tenantId, subscriptionData)
8 .then([](pplx::task<std::shared_ptr<CreateSubscriptionAPIResponse>> task) {
9 try {
10 auto response = task.get();
11 } catch (const std::exception&) {
12 }
13 });
14

usuńSubskrypcję Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
idstringYes
userIdstringNo

Odpowiedź

Zwraca: DeleteSubscriptionAPIResponse

Przykład

Przykład deleteSubscription
Copy Copy
1
2api->deleteSubscription(utility::string_t(U("my-tenant-123")), utility::string_t(U("sub-456")), boost::optional<utility::string_t>(utility::string_t(U("user@example.com"))))
3 .then([](std::shared_ptr<DeleteSubscriptionAPIResponse> resp){
4 if (resp) {
5 }
6 });
7

pobierzSubskrypcje Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
userIdstringNie

Odpowiedź

Zwraca: GetSubscriptionsAPIResponse

Przykład

Przykład getSubscriptions
Copy Copy
1
2auto tenant = utility::conversions::to_string_t("my-tenant-123");
3boost::optional<utility::string_t> user = utility::conversions::to_string_t("user@example.com");
4
5api->getSubscriptions(tenant, user).then(
6 [](pplx::task<std::shared_ptr<GetSubscriptionsAPIResponse>> t) {
7 try {
8 auto response = t.get();
9 // przetwarzaj odpowiedź
10 } catch (const std::exception& e) {
11 // obsłuż błąd
12 }
13 }
14);
15

zaktualizujSubskrypcję Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
idstringYes
updateAPIUserSubscriptionDataUpdateAPIUserSubscriptionDataYes
userIdstringNo

Odpowiedź

Zwraca: UpdateSubscriptionAPIResponse

Przykład

Przykład updateSubscription
Copy Copy
1
2UpdateAPIUserSubscriptionData subscriptionData;
3subscriptionData.plan = utility::conversions::to_string_t("premium");
4subscriptionData.active = true;
5
6api->updateSubscription(
7 utility::conversions::to_string_t("my-tenant-123"),
8 utility::conversions::to_string_t("sub-987654"),
9 subscriptionData,
10 boost::optional<utility::string_t>(utility::conversions::to_string_t("admin-user-456"))
11).then([](std::shared_ptr<UpdateSubscriptionAPIResponse> response){
12 bool ok = response && response->isSuccess;
13 (void)ok;
14});
15

pobierzDziennyUżytekNajemcy Internal Link


Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
optionsconst GetTenantDailyUsagesOptions&Tak

Odpowiedź

Zwraca: GetTenantDailyUsagesResponse

Przykład

getTenantDailyUsages Przykład
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3GetTenantDailyUsagesOptions opts;
4opts.startDate = boost::optional<utility::datetime>(utility::datetime::from_string(U("2023-01-01T00:00:00Z")));
5opts.endDate = boost::optional<utility::datetime>(utility::datetime::from_string(U("2023-01-31T23:59:59Z")));
6api->getTenantDailyUsages(tenantId, opts).then([](std::shared_ptr<GetTenantDailyUsagesResponse> resp){
7 auto result = std::make_shared<GetTenantDailyUsagesResponse>(*resp);
8}).wait();
9

utwórzPakietNajemcy Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
createTenantPackageBodyCreateTenantPackageBodyYes

Odpowiedź

Returns: CreateTenantPackageResponse

Przykład

Przykład createTenantPackage
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3CreateTenantPackageBody body;
4body.name = utility::conversions::to_string_t("Pro Plan");
5body.maxUsers = 100;
6body.expiryDate = boost::optional<utility::datetime>(utility::datetime::utc_now() + std::chrono::hours(24 * 30));
7body.notes = boost::none;
8api->createTenantPackage(tenantId, body).then([](pplx::task<std::shared_ptr<CreateTenantPackageResponse>> t){
9 try{
10 auto resp = t.get();
11 }catch(const std::exception&){
12 }
13});
14

usuńPakietNajemcy Internal Link

Parameters

NazwaTypWymaganeOpis
tenantIdstringYes
idstringYes

Response

Returns: APIEmptyResponse

Example

Przykład deleteTenantPackage
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto packageId = utility::conversions::to_string_t("pkg-456");
4boost::optional<utility::string_t> optTenant = tenantId;
5boost::optional<utility::string_t> optPackage = packageId;
6api->deleteTenantPackage(optTenant.value(), optPackage.value())
7 .then([](std::shared_ptr<APIEmptyResponse>){ })
8 .then([](pplx::task<void> t){ try{ t.get(); }catch(const std::exception&){ } });
9

pobierzPakietNajemcy Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
idstringYes

Odpowiedź

Zwraca: GetTenantPackageResponse

Przykład

Przykład getTenantPackage
Copy Copy
1
2auto tenantId = U("my-tenant-123");
3auto packageId = U("pkg-456");
4api->getTenantPackage(tenantId, packageId).then([](pplx::task<std::shared_ptr<GetTenantPackageResponse>> task){
5 try{
6 auto resp = task.get();
7 auto result = std::make_shared<GetTenantPackageResponse>(*resp);
8 }catch(...){}
9});
10

pobierzPakietyNajemcy Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
skipdoubleNie

Odpowiedź

Zwraca: GetTenantPackagesResponse

Przykład

getTenantPackages Przykład
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3boost::optional<double> skip = 20.0;
4api->getTenantPackages(tenantId, skip)
5 .then([](std::shared_ptr<GetTenantPackagesResponse> resp) {
6 (void)resp;
7 });
8

zastąpPakietNajemcy Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
idstringYes
replaceTenantPackageBodyReplaceTenantPackageBodyYes

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

replaceTenantPackage Przykład
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto pkgId = utility::conversions::to_string_t("pkg-456");
4ReplaceTenantPackageBody body;
5body.planId = utility::conversions::to_string_t("enterprise");
6body.notes = boost::optional<utility::string_t>(utility::conversions::to_string_t("Upgrade request"));
7api->replaceTenantPackage(tenantId, pkgId, body)
8 .then([](std::shared_ptr<APIEmptyResponse>) { })
9 .then([](pplx::task<void> t) {
10 try { t.get(); } catch (const std::exception&) { }
11 });
12

zaktualizujPakietNajemcy Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
updateTenantPackageBodyUpdateTenantPackageBodyTak

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

Przykład updateTenantPackage
Copy Copy
1
2auto body = std::make_shared<UpdateTenantPackageBody>();
3body->packageId = utility::conversions::to_string_t("premium-plan");
4body->expirationDate = utility::conversions::to_string_t("2025-12-31");
5body->notes = boost::optional<utility::string_t>(utility::conversions::to_string_t("Upgraded package"));
6
7api->updateTenantPackage(utility::conversions::to_string_t("my-tenant-123"),
8 utility::conversions::to_string_t("pkg-456"),
9 body)
10 .then([](pplx::task<std::shared_ptr<APIEmptyResponse>> task) {
11 try {
12 auto response = task.get();
13 // obsługa sukcesu
14 } catch (const std::exception& ex) {
15 // obsługa błędu
16 }
17 });
18

utwórzUżytkownikaNajemcy Internal Link


Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
createTenantUserBodyCreateTenantUserBodyTak

Odpowiedź

Zwraca: CreateTenantUserResponse

Przykład

Przykład createTenantUser
Copy Copy
1
2auto body = CreateTenantUserBody{};
3body.email = utility::conversions::to_string_t("newuser@example.com");
4body.firstName = utility::conversions::to_string_t("Alice");
5body.lastName = utility::conversions::to_string_t("Smith");
6body.role = boost::optional<utility::string_t>(utility::conversions::to_string_t("moderator"));
7
8api->createTenantUser(utility::conversions::to_string_t("my-tenant-123"), body)
9 .then([](pplx::task<std::shared_ptr<CreateTenantUserResponse>> task) {
10 try {
11 auto response = task.get();
12 } catch (const std::exception&) {
13 }
14 });
15

usuńUżytkownikaNajemcy Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
optionsconst DeleteTenantUserOptions&Tak

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

deleteTenantUser Przykład
Copy Copy
1
2DeleteTenantUserOptions options;
3options.reason = boost::optional<utility::string_t>(U("User requested deletion"));
4
5api->deleteTenantUser(U("my-tenant-123"), U("user@example.com"), options)
6 .then([](std::shared_ptr<APIEmptyResponse> resp){
7 (void)resp;
8 });
9

pobierzUżytkownikaNajemcy Internal Link

Parameters

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak

Response

Zwraca: GetTenantUserResponse

Example

Przykład getTenantUser
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto userId = utility::conversions::to_string_t("user@example.com");
4api->getTenantUser(tenantId, userId)
5 .then([](pplx::task<std::shared_ptr<GetTenantUserResponse>> task) {
6 try {
7 auto response = task.get();
8 // Użyj odpowiedzi w razie potrzeby
9 } catch (const std::exception&) {
10 // Obsługa błędów
11 }
12 });
13

pobierzUżytkownikówNajemcy Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
skipdoubleNie

Odpowiedź

Returns: GetTenantUsersResponse

Przykład

Przykład getTenantUsers
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3boost::optional<double> skip = 10;
4
5api->getTenantUsers(tenantId, skip).then([](pplx::task<std::shared_ptr<GetTenantUsersResponse>> t){
6 try {
7 auto resp = t.get();
8 } catch (const std::exception&) {
9 }
10});
11

zastąpUżytkownikaNajemcy Internal Link

Parameters

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
replaceTenantUserBodyReplaceTenantUserBodyTak
updateCommentsstringNie

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

replaceTenantUser Przykład
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3auto userId = utility::string_t(U("john.doe@example.com"));
4ReplaceTenantUserBody replaceBody;
5replaceBody.email = utility::string_t(U("john.doe@example.com"));
6replaceBody.role = utility::string_t(U("admin"));
7boost::optional<utility::string_t> updateComments = utility::string_t(U("Promoted to admin"));
8api->replaceTenantUser(tenantId, userId, replaceBody, updateComments)
9 .then([](std::shared_ptr<APIEmptyResponse> resp){ });
10

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
redirectURLstringNie

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

Przykład sendLoginLink
Copy Copy
1
2api->sendLoginLink(
3 U("my-tenant-123"),
4 U("user@example.com"),
5 boost::make_optional(U("https://myapp.com/auth/callback"))
6).then([](std::shared_ptr<APIEmptyResponse> resp) {
7});
8

zaktualizujUżytkownikaNajemcy Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
updateTenantUserBodyUpdateTenantUserBodyTak
updateCommentsstringNie

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

updateTenantUser Przykład
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t userId = U("user-456");
4UpdateTenantUserBody body;
5body.email = U("john.doe@example.com");
6body.role = U("admin");
7boost::optional<utility::string_t> updateComments = U("Promoted to admin");
8
9api->updateTenantUser(tenantId, userId, body, updateComments)
10 .then([](std::shared_ptr<APIEmptyResponse>){ });
11

utwórzNajemcę Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
createTenantBodyCreateTenantBodyYes

Odpowiedź

Zwraca: CreateTenantResponse

Przykład

Przykład createTenant
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3CreateTenantBody body;
4body.setName(utility::conversions::to_string_t("Acme Corp"));
5body.setAdminEmail(utility::conversions::to_string_t("admin@acme.com"));
6body.setPlan(utility::conversions::to_string_t("enterprise"));
7body.setDescription(boost::optional<utility::string_t>(utility::conversions::to_string_t("Primary tenant for Acme")));
8
9api->createTenant(tenantId, body).then([](pplx::task<std::shared_ptr<CreateTenantResponse>> t){
10 auto resp = t.get();
11});
12

usuńNajemcę Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
surestringNie

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

Przykład deleteTenant
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto userId = utility::conversions::to_string_t("user@example.com");
4boost::optional<utility::string_t> sure = utility::conversions::to_string_t("true");
5api->deleteTenant(tenantId, userId, sure)
6 .then([](pplx::task<std::shared_ptr<APIEmptyResponse>> t){
7 try{
8 auto resp = t.get();
9 auto result = std::make_shared<APIEmptyResponse>(*resp);
10 }catch(const std::exception&){})
11

pobierzNajemcę Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak

Odpowiedź

Zwraca: GetTenantResponse

Przykład

Przykład getTenant
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto id = utility::conversions::to_string_t("tenant-admin-456");
4boost::optional<utility::string_t> includeDetails = utility::conversions::to_string_t("full");
5api->getTenant(tenantId, id)
6 .then([](std::shared_ptr<GetTenantResponse> resp) {
7 if (resp) {
8 std::wcout << resp->toString() << std::endl;
9 }
10 });
11

pobierzNajemców Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
optionsconst GetTenantsOptions&Tak

Odpowiedź

Zwraca: GetTenantsResponse

Przykład

Przykład getTenants
Copy Copy
1
2GetTenantsOptions options;
3options.includeDeleted = boost::make_optional(false);
4options.searchTerm = boost::make_optional(utility::string_t(U("enterprise")));
5
6api->getTenants(utility::string_t(U("my-tenant-123")), options)
7 .then([](std::shared_ptr<GetTenantsResponse> response) {
8 })
9 .then([](pplx::task<void> t){ try{ t.get(); }catch(...){} });
10

zaktualizujNajemcę Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
idstringYes
updateTenantBodyUpdateTenantBodyYes

Odpowiedź

Zwraca: APIEmptyResponse

Przykład

Przykład updateTenant
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3auto recordId = utility::string_t(U("tenant-456"));
4UpdateTenantBody body;
5body.name = boost::optional<utility::string_t>(U("Acme Corp"));
6body.contactEmail = boost::optional<utility::string_t>(U("admin@acme.com"));
7api->updateTenant(tenantId, recordId, body).then([](std::shared_ptr<APIEmptyResponse> resp) {
8 auto log = std::make_shared<utility::string_t>(U("Tenant update succeeded"));
9 (void)resp;
10 (void)log;
11});
12

zmieńStanZgłoszenia Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
userIdstringTak
idstringTak
changeTicketStateBodyChangeTicketStateBodyTak

Odpowiedź

Zwraca: ChangeTicketStateResponse

Przykład

Przykład changeTicketState
Copy Copy
1
2auto body = std::make_shared<ChangeTicketStateBody>();
3body->state = U("closed");
4body->comment = boost::optional<utility::string_t>(U("Ticket resolved"));
5api->changeTicketState(U("my-tenant-123"), U("user@example.com"), U("ticket-456"), *body)
6 .then([](std::shared_ptr<ChangeTicketStateResponse>) {});
7

utwórzZgłoszenie Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
userIdstringTak
createTicketBodyCreateTicketBodyTak

Odpowiedź

Zwraca: CreateTicketResponse

Przykład

Przykład createTicket
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto userId = utility::conversions::to_string_t("john.doe@example.com");
4CreateTicketBody ticketBody;
5ticketBody.setSubject(utility::conversions::to_string_t("Login Issue"));
6ticketBody.setDescription(utility::conversions::to_string_t("Cannot log in after password reset."));
7boost::optional<int> priority = 2;
8ticketBody.setPriority(priority);
9api->createTicket(tenantId, userId, ticketBody).then([](pplx::task<std::shared_ptr<CreateTicketResponse>> task){
10 try{
11 auto response = task.get();
12 // Użyj odpowiedzi w razie potrzeby
13 }catch(const std::exception&){
14 // Obsłuż błąd
15 }
16});
17

pobierzZgłoszenie Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
userIdstringNie

Odpowiedź

Zwraca: GetTicketResponse

Przykład

getTicket Przykład
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t ticketId = U("ticket-789");
4boost::optional<utility::string_t> userId = U("alice@example.com");
5api->getTicket(tenantId, ticketId, userId).then([](pplx::task<std::shared_ptr<GetTicketResponse>> task){
6 try{
7 auto resp = task.get();
8 }catch(const std::exception&){
9 }
10});
11

pobierzZgłoszenia Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
optionsconst GetTicketsOptions&Tak

Odpowiedź

Zwraca: GetTicketsResponse

Przykład

Przykład getTickets
Copy Copy
1
2auto options = GetTicketsOptions{};
3options.page = boost::optional<int>(1);
4options.status = boost::optional<utility::string_t>(U("open"));
5api->getTickets(U("my-tenant-123"), options).then([](pplx::task<std::shared_ptr<GetTicketsResponse>> task) {
6 try {
7 auto response = task.get();
8 auto responseCopy = std::make_shared<GetTicketsResponse>(*response);
9 } catch (const std::exception&) {
10 }
11});
12

pobierzTłumaczenia Internal Link

Parametry

NazwaTypWymaganeOpis
r_namespacestringTak
componentstringTak
optionsconst GetTranslationsOptions&Tak

Odpowiedź

Zwraca: GetTranslationsResponse

Przykład

Przykład getTranslations
Copy Copy
1
2utility::string_t ns = U("my-tenant-123");
3utility::string_t comp = U("comments");
4auto optsPtr = std::make_shared<GetTranslationsOptions>();
5optsPtr->language = boost::make_optional(U("en"));
6optsPtr->fallback = boost::none;
7api->getTranslations(ns, comp, *optsPtr)
8 .then([](pplx::task<std::shared_ptr<GetTranslationsResponse>> t) {
9 try {
10 auto resp = t.get();
11 } catch (const std::exception& e) {
12 }
13 });
14

prześlijObraz Internal Link

Upload and resize an image

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
fileHttpContentTak
optionsconst UploadImageOptions&Tak

Odpowiedź

Zwraca: UploadImageResponse

Przykład

Przykład uploadImage
Copy Copy
1
2auto fileStream = concurrency::streams::fstream::open_istream(U("avatar.png"), std::ios::in).get();
3HttpContent file(fileStream, U("image/png"));
4UploadImageOptions options;
5options.description = boost::optional<utility::string_t>(U("Profile picture"));
6options.width = boost::optional<int>(256);
7options.height = boost::optional<int>(256);
8api->uploadImage(U("my-tenant-123"), file, options).then([](pplx::task<std::shared_ptr<UploadImageResponse>> t){
9 auto resp = t.get();
10});
11

pobierzPostępOdznakiUżytkownikaPoId Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak

Odpowiedź

Zwraca: APIGetUserBadgeProgressResponse

Przykład

Przykład getUserBadgeProgressById
Copy Copy
1
2auto tenantId = U("my-tenant-123");
3auto userId = U("user-456");
4api->getUserBadgeProgressById(tenantId, userId)
5 .then([=](pplx::task<std::shared_ptr<APIGetUserBadgeProgressResponse>> t){
6 try{
7 auto resp = t.get();
8 boost::optional<std::shared_ptr<APIGetUserBadgeProgressResponse>> optResp = resp;
9 if(optResp){}
10 }catch(const std::exception&){}
11 });
12

pobierzPostępOdznakiUżytkownikaPoIdUżytkownika Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
userIdstringYes

Odpowiedź

Zwraca: APIGetUserBadgeProgressResponse

Przykład

Przykład getUserBadgeProgressByUserId
Copy Copy
1
2boost::optional<std::shared_ptr<APIGetUserBadgeProgressResponse>> responseOpt;
3api->getUserBadgeProgressByUserId(
4 utility::conversions::to_string_t("my-tenant-123"),
5 utility::conversions::to_string_t("user@example.com"))
6 .then([&responseOpt](pplx::task<std::shared_ptr<APIGetUserBadgeProgressResponse>> t) {
7 try {
8 responseOpt = t.get();
9 } catch (...) {
10 responseOpt = boost::none;
11 }
12 });
13

pobierzListęPostępuOdznakUżytkownika Internal Link

Parametry

NameTypeRequiredDescription
tenantIdstringYes
optionsconst GetUserBadgeProgressListOptions&Yes

Odpowiedź

Zwraca: APIGetUserBadgeProgressListResponse

Przykład

Przykład getUserBadgeProgressList
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3GetUserBadgeProgressListOptions options;
4options.userId = U("user@example.com");
5options.page = boost::optional<int>(1);
6options.pageSize = boost::optional<int>(20);
7api->getUserBadgeProgressList(tenantId, options)
8 .then([](std::shared_ptr<APIGetUserBadgeProgressListResponse> resp) {
9 if (!resp) return;
10 for (const auto& badge : resp->badges) {
11 // przetwarzaj odznakę
12 }
13 });
14

utwórzOdznakęUżytkownika Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
createUserBadgeParamsCreateUserBadgeParamsYes

Odpowiedź

Zwraca: APICreateUserBadgeResponse

Przykład

createUserBadge Przykład
Copy Copy
1
2auto tenantId = U("my-tenant-123");
3CreateUserBadgeParams badgeParams;
4badgeParams.userEmail = U("user@example.com");
5badgeParams.badgeCode = U("gold");
6badgeParams.expirationDate = boost::optional<utility::datetime>(utility::datetime::utc_now() + utility::datetime::from_seconds(2592000));
7api->createUserBadge(tenantId, badgeParams).then([](std::shared_ptr<APICreateUserBadgeResponse> resp){
8 if (resp && resp->success) {
9 auto result = std::make_shared<APICreateUserBadgeResponse>(*resp);
10 }
11});
12

usuńOdznakęUżytkownika Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak

Odpowiedź

Zwraca: APIEmptySuccessResponse

Przykład

deleteUserBadge Przykład
Copy Copy
1
2auto tenantId = boost::optional<utility::string_t>(U("my-tenant-123"));
3auto badgeId = utility::string_t(U("badge-789"));
4api->deleteUserBadge(tenantId.value(), badgeId)
5 .then([](std::shared_ptr<APIEmptySuccessResponse> resp){
6 auto copy = std::make_shared<APIEmptySuccessResponse>(*resp);
7 })
8 .then([](pplx::task<void> t){
9 try{ t.get(); } catch(const std::exception&){ }
10 });
11

pobierzOdznakęUżytkownika Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak

Odpowiedź

Zwraca: APIGetUserBadgeResponse

Przykład

Przykład getUserBadge
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t userId = U("user-456");
4api->getUserBadge(tenantId, userId).then([](pplx::task<std::shared_ptr<APIGetUserBadgeResponse>> t){
5 try{
6 auto resp = t.get();
7 boost::optional<std::string> badgeUrl = resp->badge_url ? boost::optional<std::string>(*resp->badge_url) : boost::none;
8 }catch(const std::exception&){
9 }
10});
11

pobierzOdznakiUżytkownika Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsconst GetUserBadgesOptions&Yes

Response

Zwraca: APIGetUserBadgesResponse

Example

Przykład getUserBadges
Copy Copy
1
2GetUserBadgesOptions opts;
3opts.userId = boost::make_optional(U("user@example.com"));
4opts.includeExpired = boost::make_optional(false);
5
6api->getUserBadges(U("my-tenant-123"), opts)
7 .then([](pplx::task<std::shared_ptr<APIGetUserBadgesResponse>> t) {
8 try {
9 auto response = t.get();
10 } catch (const std::exception&) {
11 }
12 });
13

zaktualizujOdznakęUżytkownika Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
updateUserBadgeParamsUpdateUserBadgeParamsTak

Odpowiedź

Zwraca: APIEmptySuccessResponse

Przykład

Przykład updateUserBadge
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto userId = utility::conversions::to_string_t("user@example.com");
4UpdateUserBadgeParams params;
5params.badgeId = utility::conversions::to_string_t("vip-badge");
6params.expiration = boost::optional<utility::datetime>(utility::datetime::from_string(U("2024-12-31T23:59:59Z")));
7api->updateUserBadge(tenantId, userId, params)
8 .then([](std::shared_ptr<APIEmptySuccessResponse> resp){
9 std::cout << "Badge updated successfully\n";
10 })
11 .catch([](std::exception const& e){
12 std::cerr << "Error updating badge: " << e.what() << "\n";
13 });
14

pobierzLiczbęPowiadomieńUżytkownika Internal Link

Parametry

NameTypeRequiredDescription
tenantIdstringTak
ssostringNie

Odpowiedź

Zwraca: GetUserNotificationCountResponse

Przykład

getUserNotificationCount Przykład
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3boost::optional<utility::string_t> sso = utility::conversions::to_string_t("user@example.com");
4api->getUserNotificationCount(tenantId, sso).then([](pplx::task<std::shared_ptr<GetUserNotificationCountResponse>> t){
5 try{
6 auto resp = t.get();
7 // użyj resp w razie potrzeby
8 }catch(const std::exception&){
9 // obsłuż błąd
10 }
11});
12

pobierzPowiadomieniaUżytkownika Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
optionsconst GetUserNotificationsOptions&Yes

Odpowiedź

Zwraca: GetMyNotificationsResponse

Przykład

getUserNotifications Przykład
Copy Copy
1
2utility::string_t tenantId = utility::string_t("my-tenant-123");
3GetUserNotificationsOptions options;
4options.limit = boost::optional<int>(20);
5options.unreadOnly = boost::optional<bool>(true);
6api->getUserNotifications(tenantId, options)
7 .then([](pplx::task<std::shared_ptr<GetMyNotificationsResponse>> task){
8 auto resp = task.get();
9 auto notifications = std::make_shared<GetMyNotificationsResponse>(*resp);
10 });
11

zresetujLiczbęPowiadomieńUżytkownika Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
ssostringNo

Odpowiedź

Zwraca: ResetUserNotificationsResponse

Przykład

resetUserNotificationCount Przykład
Copy Copy
1
2auto resetTask = api->resetUserNotificationCount(
3 U("my-tenant-123"),
4 boost::optional<utility::string_t>(U("user@example.com"))
5).then([](std::shared_ptr<ResetUserNotificationsResponse> resp){
6});
7

zresetujPowiadomieniaUżytkownika Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
optionsconst ResetUserNotificationsOptions&Tak

Odpowiedź

Zwraca: ResetUserNotificationsResponse

Przykład

resetUserNotifications Przykład
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3ResetUserNotificationsOptions options;
4options.email = boost::optional<utility::string_t>(U("user@example.com"));
5api->resetUserNotifications(tenantId, options)
6 .then([](std::shared_ptr<ResetUserNotificationsResponse> resp) {
7 // Przetwórz odpowiedź
8 });
9

zaktualizujStatusSubskrypcjiPowiadomieńKomentarzyUżytkownika Internal Link

Enable or disable notifications for a specific comment.

Parameters

NameTypeRequiredDescription
tenantIdstringYes
notificationIdstringYes
optedInOrOutstringYes
commentIdstringYes
ssostringNo

Response

Zwraca: UpdateUserNotificationCommentSubscriptionStatusResponse

Przykład

Przykład updateUserNotificationCommentSubscriptionStatus
Copy Copy
1
2auto updateTask = api->updateUserNotificationCommentSubscriptionStatus(
3 utility::conversions::to_string_t("my-tenant-123"),
4 utility::conversions::to_string_t("notif-456"),
5 utility::conversions::to_string_t("optedIn"),
6 utility::conversions::to_string_t("comment-789"),
7 boost::optional<utility::string_t>(utility::conversions::to_string_t("sso-token-abc"))
8).then([](std::shared_ptr<UpdateUserNotificationCommentSubscriptionStatusResponse> resp){
9 (void)resp;
10});
11

zaktualizujStatusSubskrypcjiPowiadomieńStronUżytkownika Internal Link

Enable lub wyłącz powiadomienia dla strony. Gdy użytkownicy są subskrybowani do strony, tworzone są powiadomienia dla nowych głównych komentarzy oraz również

Parameters

NazwaTypWymaganeOpis
tenantIdstringTak
urlIdstringTak
urlstringTak
pageTitlestringTak
subscribedOrUnsubscribedstringTak
ssostringNie

Response

Zwraca: UpdateUserNotificationPageSubscriptionStatusResponse

Example

updateUserNotificationPageSubscriptionStatus Przykład
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t urlId = U("page-456");
4utility::string_t url = U("https://example.com/articles/awesome-article");
5utility::string_t pageTitle = U("Awesome Article");
6utility::string_t subscription = U("subscribed");
7boost::optional<utility::string_t> sso = boost::make_optional<utility::string_t>(U("sso-token-789"));
8
9api->updateUserNotificationPageSubscriptionStatus(tenantId, urlId, url, pageTitle, subscription, sso)
10 .then([](std::shared_ptr<UpdateUserNotificationPageSubscriptionStatusResponse> resp) {
11 // przetwórz odpowiedź w razie potrzeby
12 });
13

zaktualizujStatusPowiadomieńUżytkownika Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
notificationIdstringTak
newStatusstringTak
ssostringNie

Odpowiedź

Zwraca: UpdateUserNotificationStatusResponse

Przykład

Przykład updateUserNotificationStatus
Copy Copy
1
2api->updateUserNotificationStatus(
3 U("my-tenant-123"),
4 U("notif-456"),
5 U("read"),
6 boost::optional<utility::string_t>(U("sso-token-abc"))
7).then([](std::shared_ptr<UpdateUserNotificationStatusResponse> resp) {
8}).wait();
9

pobierzStatusyObecnościUżytkownika Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
urlIdWSstringYes
userIdsstringYes

Odpowiedź

Zwraca: GetUserPresenceStatusesResponse

Przykład

Przykład getUserPresenceStatuses
Copy Copy
1
2auto tenantId = U("my-tenant-123");
3auto urlIdWS = U("article-789");
4auto userIds = U("alice@example.com,bob@example.com");
5boost::optional<utility::string_t> optionalFilter = boost::none;
6api->getUserPresenceStatuses(tenantId, urlIdWS, userIds)
7 .then([](pplx::task<std::shared_ptr<GetUserPresenceStatusesResponse>> t){
8 try{
9 auto response = t.get();
10 }catch(...){
11 }
12 });
13

szukajUżytkowników Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
urlIdstringYes
optionsconst SearchUsersOptions&Yes

Odpowiedź

Zwraca: SearchUsersResult

Przykład

searchUsers Przykład
Copy Copy
1
2utility::string_t tenantId = U("my-tenant-123");
3utility::string_t urlId = U("article-456");
4SearchUsersOptions options;
5options.query = U("john.doe@example.com");
6options.page = boost::optional<int>(1);
7options.pageSize = boost::optional<int>(20);
8api->searchUsers(tenantId, urlId, options).then([](pplx::task<std::shared_ptr<SearchUsersResult>> task){
9 try{
10 auto result = task.get();
11 }catch(const std::exception&){}
12});
13

pobierzUżytkownika Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak

Odpowiedź

Zwraca: GetUserResponse

Przykład

getUser Przykład
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto userId = utility::conversions::to_string_t("user-789");
4boost::optional<utility::string_t> optTag = boost::none;
5
6api->getUser(tenantId, userId)
7 .then([=](pplx::task<std::shared_ptr<GetUserResponse>> task) {
8 try {
9 auto response = task.get();
10 if (!response) {
11 response = std::make_shared<GetUserResponse>();
12 }
13 // przetwarzaj odpowiedź w razie potrzeby
14 } catch (const std::exception&) {
15 // obsłuż błąd
16 }
17 });
18

utwórzGłos Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
commentIdstringYes
directionstringYes
optionsconst CreateVoteOptions&Yes

Odpowiedź

Zwraca: VoteResponse

Przykład

Przykład createVote
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto commentId = utility::conversions::to_string_t("cmt-456");
4auto direction = utility::conversions::to_string_t("up");
5auto optionsPtr = std::make_shared<CreateVoteOptions>();
6optionsPtr->userId = utility::conversions::to_string_t("user-789");
7optionsPtr->ipAddress = boost::optional<utility::string_t>(utility::conversions::to_string_t("192.168.1.100"));
8api->createVote(tenantId, commentId, direction, *optionsPtr)
9 .then([](std::shared_ptr<VoteResponse> resp){});
10

usuńGłos Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
idstringYes
editKeystringNo

Odpowiedź

Zwraca: VoteDeleteResponse

Przykład

Przykład deleteVote
Copy Copy
1
2auto tenantId = utility::conversions::to_string_t("my-tenant-123");
3auto voteId = utility::conversions::to_string_t("vote-9876");
4boost::optional<utility::string_t> editKey = utility::conversions::to_string_t("edit-abc123");
5
6api->deleteVote(tenantId, voteId, editKey).then([](pplx::task<std::shared_ptr<VoteDeleteResponse>> task) {
7 try {
8 auto response = task.get();
9 // Przetwórz odpowiedź w razie potrzeby
10 } catch (const std::exception&) {
11 // Obsłuż błąd
12 }
13});
14

pobierzGłosy Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
urlIdstringTak

Odpowiedź

Zwraca: GetVotesResponse

Przykład

Przykład getVotes
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3auto urlId = utility::string_t(U("article-456"));
4boost::optional<utility::string_t> extraHeader = boost::none;
5
6api->getVotes(tenantId, urlId).then([=](pplx::task<std::shared_ptr<GetVotesResponse>> task) {
7 try {
8 auto original = task.get();
9 auto response = std::make_shared<GetVotesResponse>(*original);
10 } catch (...) {
11 // obsługa błędów
12 }
13});
14

pobierzGłosyDlaUżytkownika Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
urlIdstringYes
optionsconst GetVotesForUserOptions&Yes

Odpowiedź

Zwraca: GetVotesForUserResponse

Przykład

Przykład getVotesForUser
Copy Copy
1
2auto tenantId = utility::string_t(U("my-tenant-123"));
3auto urlId = utility::string_t(U("post-456"));
4GetVotesForUserOptions options;
5options.page = boost::optional<int>(2);
6options.pageSize = boost::optional<int>(50);
7api->getVotesForUser(tenantId, urlId, options).then([](std::shared_ptr<GetVotesForUserResponse> response) {
8 if (response) {
9 // obsłuż odpowiedź, np. iteruj głosy
10 }
11});
12

Potrzebujesz pomocy?

Jeśli napotkasz jakiekolwiek problemy lub masz pytania dotyczące C++ SDK, prosimy:

Współtworzenie

Wkłady są mile widziane! Odwiedź repozytorium GitHub, aby zapoznać się z wytycznymi dotyczącymi wkładu.