FastComments.com

FastComments C++ SDK

이것은 FastComments의 공식 C++ SDK입니다.

FastComments API용 공식 C++ SDK

리포지토리

GitHub에서 보기

AI 코딩 에이전트 Internal Link

skills.sh

코딩 에이전트에게 FastComments 컨텍스트가 필요합니다 - 위젯, 구성, Secure SSO, REST API 및 SDK:

npx skills add fastcomments/skills

Claude Code, Codex, Cursor, Copilot, Gemini 및 모든 다른 에이전트와 함께 작동하며, skills CLI 가 지원합니다.

요구 사항 Internal Link

  • C++17 이상
  • CMake 3.14 이상
  • OpenSSL
  • C++ REST SDK (cpprestsdk)
  • Boost
  • Google Test (테스트를 위해 자동으로 다운로드됨)

설치 Internal Link

의존성 설치

sudo apt install libcpprest-dev libboost-all-dev

소스에서 빌드하기

mkdir build
cd build
cmake ..
make

설치하기

sudo make install

라이브러리 구성

이 라이브러리는 생성된 API 클라이언트와 API 작업을 더 쉽게 만들어 주는 SSO 유틸리티를 포함하고 있습니다.

공개 API vs 보안 API

API 클라이언트에는 DefaultApi, PublicApi, ModerationApi 세 가지 클래스가 있습니다. DefaultApi는 API 키가 필요한 메서드를 포함하며, PublicApi는 인증 없이 브라우저/모바일 기기 등에서 직접 호출할 수 있는 메서드를 포함합니다. ModerationApi는 실시간 빠른 검토(모더레이션)를 위한 폭넓은 API 모음을 제공합니다. 모든 ModerationApi 메서드는 sso 매개변수를 받으며, SSO 또는 FastComments.com 세션 쿠키를 통해 인증할 수 있습니다.

노트 Internal Link

브로드캐스트 ID

일부 API 호출에서 broadcastId를 전달해야 한다는 것을 보게 될 것입니다. 이벤트를 수신하면 이 ID가 다시 반환되므로, 클라이언트에서 낙관적으로 변경을 적용하려는 경우 해당 이벤트를 무시해야 하는지 알 수 있습니다 (대부분 그렇게 하는 것이 가장 좋은 사용자 경험을 제공하므로 아마 그렇게 하게 될 것입니다). 여기에는 UUID를 전달하세요. 이 ID는 브라우저 세션에서 두 번 발생하지 않을 만큼 충분히 고유해야 합니다.

SSO (싱글 사인온)

SSO 예제는 아래를 참조하세요.

SSO 사용 Internal Link

간단한 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;
}

보안 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;
}

집계 Internal Link

Aggregates documents by grouping them (if groupBy is provided) and applying multiple operations. Different operations (e.g. sum, countDistinct, avg, etc.) are supported.

Parameters

이름유형필수설명
tenantIdstringYes
aggregationRequestAggregationRequestYes
optionsconst AggregateOptions&Yes

Response

반환: AggregateResponse

Example

aggregate 예제
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 // 응답 처리
19 } catch (const std::exception& e) {
20 // 오류 처리
21 }
22 });
23

감사 로그 가져오기 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring예
optionsconst GetAuditLogsOptions&예

응답

반환: GetAuditLogsResponse

예시

getAuditLogs 예시
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 // 응답 사용
13 } catch (const std::exception& e) {
14 // 오류 처리
15 }
16});
17

공개 로그아웃 Internal Link

응답

반환: APIEmptyResponse

예시

logoutPublic 예시
Copy Copy
1
2api->logoutPublic()
3 .then([](std::shared_ptr<APIEmptyResponse> /*resp*/) {
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

공개 댓글 차단 Internal Link

매개변수

이름타입필수설명
tenantIdstring예
commentIdstring예
publicBlockFromCommentParamsPublicBlockFromCommentParams예
ssostring아니오

응답

반환: BlockSuccess

예제

blockFromCommentPublic 예제
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

공개 댓글 차단 해제 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
commentIdstringYes
publicBlockFromCommentParamsPublicBlockFromCommentParamsYes
ssostringNo

응답

반환: UnblockSuccess

예제

unBlockCommentPublic 예제
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

차단된 댓글 확인 Internal Link

매개변수

이름형식필수설명
tenantIdstringYes
commentIdsstringYes
ssostringNo

응답

반환: CheckBlockedCommentsResponse

예시

checkedCommentsForBlocked 예제
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

댓글에서 사용자 차단 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
idstring예
blockFromCommentParamsBlockFromCommentParams예
optionsconst BlockUserFromCommentOptions&예

응답

반환: BlockSuccess

예시

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

공개 댓글 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
urlIdstringYes
broadcastIdstringYes
commentDataCommentDataYes
optionsconst CreateCommentPublicOptions&Yes

응답

Returns: SaveCommentsResponseWithPresence

예제

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

댓글 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
idstring예
optionsconst DeleteCommentOptions&예

응답

반환: DeleteCommentResult

예시

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

공개 댓글 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
commentIdstringYes
broadcastIdstringYes
optionsconst DeleteCommentPublicOptions&Yes

응답

반환: PublicAPIDeleteCommentResponse

예시

deleteCommentPublic 예제
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

댓글 투표 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
commentIdstringYes
voteIdstringYes
urlIdstringYes
broadcastIdstringYes
optionsconst DeleteCommentVoteOptions&Yes

응답

Returns: VoteDeleteResponse

예제

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

댓글 신고 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
idstring예
optionsconst FlagCommentOptions&예

응답

반환: FlagCommentResponse

예제

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

댓글 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
idstring예

응답

Returns: APIGetCommentResponse

예시

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

댓글 목록 가져오기 Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsconst GetCommentsOptions&Yes

Response

반환: APIGetCommentsResponse

Example

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 // 필요에 따라 응답 사용
12 } catch (const std::exception& e) {
13 // 오류 처리
14 }
15});
16

공개 댓글 목록 가져오기 Internal Link

req tenantId urlId

매개변수

NameTypeRequiredDescription
tenantIdstring예
urlIdstring예
optionsconst GetCommentsPublicOptions&예

응답

Returns: GetCommentsResponseWithPresence_PublicComment_

예시

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

댓글 텍스트 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
commentIdstring예
optionsconst GetCommentTextOptions&예

응답

반환: PublicAPIGetCommentTextResponse

예시

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

댓글 투표 사용자 이름 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
commentIdstringYes
dirint32_tYes
ssostringNo

응답

반환: GetCommentVoteUserNamesSuccessResponse

예제

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

댓글 잠금 Internal Link

매개변수

이름형식필수설명
tenantIdstringYes
commentIdstringYes
broadcastIdstringYes
ssostringNo

응답

반환: APIEmptyResponse

예시

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

댓글 고정 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
commentIdstringYes
broadcastIdstringYes
ssostringNo

응답

반환: ChangeCommentPinStatusResponse

예제

pinComment 예제
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

댓글 저장 Internal Link

Parameters

이름타입필수설명
tenantIdstring예
createCommentParamsCreateCommentParams예
optionsconst SaveCommentOptions&예

응답

반환: APISaveCommentResponse

예제

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

댓글 텍스트 설정 Internal Link

매개변수

이름형식필수설명
tenantIdstringYes
commentIdstringYes
broadcastIdstringYes
commentTextUpdateRequestCommentTextUpdateRequestYes
optionsconst SetCommentTextOptions&Yes

응답

반환: PublicAPISetCommentTextResponse

예시

setCommentText 예시
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

댓글에서 사용자 차단 해제 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
idstring예
unBlockFromCommentParamsUnBlockFromCommentParams예
optionsconst UnBlockUserFromCommentOptions&예

응답

반환: UnblockSuccess

예제

unBlockUserFromComment 예제
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

댓글 신고 해제 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstringYes
idstringYes
optionsconst UnFlagCommentOptions&Yes

응답

반환: FlagCommentResponse

예시

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 // 필요에 따라 상태를 처리합니다
9 }
10 })
11 .then([](pplx::task<void> previous) {
12 try {
13 previous.get();
14 } catch (const std::exception& e) {
15 // 오류를 처리합니다
16 }
17 });
18

댓글 잠금 해제 Internal Link

Parameters

이름타입필수설명
tenantIdstring예
commentIdstring예
broadcastIdstring예
ssostring아니오

Response

반환: APIEmptyResponse

Example

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

댓글 고정 해제 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
commentIdstring예
broadcastIdstring예
ssostring아니오

응답

반환: ChangeCommentPinStatusResponse

예시

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

댓글 업데이트 Internal Link

Parameters

이름유형필수설명
tenantIdstring예
idstring예
updatableCommentParamsUpdatableCommentParams예
optionsconst UpdateCommentOptions&예

Response

반환: APIEmptyResponse

예시

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

댓글 투표 Internal Link

매개변수

이름타입필수설명
tenantIdstring예
commentIdstring예
urlIdstring예
broadcastIdstring예
voteBodyParamsVoteBodyParams예
optionsconst VoteCommentOptions&예

응답

반환: VoteResponse

예제

voteComment 예제
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 // 응답 처리
19 } catch (const std::exception&) {
20 }
21 });
22

사용자 댓글 가져오기 Internal Link

매개변수

이름형식필수설명
optionsconst GetCommentsForUserOptions&예

응답

반환: GetCommentsForUserResponse

예제

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

도메인 설정 추가 Internal Link

파라미터

이름형식필수설명
tenantIdstring예
addDomainConfigParamsAddDomainConfigParams예

응답

Returns: AddDomainConfigResponse

예시

addDomainConfig 예시
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

도메인 설정 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
domainstringYes

응답

반환: DeleteDomainConfigResponse

예제

deleteDomainConfig 예제
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

도메인 설정 가져오기 Internal Link

매개변수

이름형식필수설명
tenantIdstring예
domainstring예

응답

반환: GetDomainConfigResponse

예시

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 // 활성화된 모더레이션 처리
12 }
13 if (theme) {
14 // 테마 값을 사용
15 }
16 })
17 .wait();
18

도메인 설정 목록 가져오기 Internal Link

Parameters

이름형식필수설명
tenantIdstring예

Response

반환: GetDomainConfigsResponse

Example

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

도메인 설정 패치 Internal Link

Parameters

이름타입필수설명
tenantIdstringYes
domainToUpdatestringYes
patchDomainConfigParamsPatchDomainConfigParamsYes

Response

Returns: PatchDomainConfigResponse

예시

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 // 성공 처리
12 })
13 .then([](pplx::task<void> t) {
14 try { t.get(); } catch (const std::exception& e) { /* 오류 처리 */ }
15 });
16

도메인 설정 저장 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
domainToUpdatestringYes
updateDomainConfigParamsUpdateDomainConfigParamsYes

응답

반환: PutDomainConfigResponse

예시

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

이메일 템플릿 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
createEmailTemplateBodyCreateEmailTemplateBodyYes

응답

반환: CreateEmailTemplateResponse

예시

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

이메일 템플릿 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
idstring예

응답

반환: APIEmptyResponse

예시

deleteEmailTemplate 예제
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

이메일 템플릿 렌더링 오류 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
idstring예
errorIdstring예

응답

반환: APIEmptyResponse

예시

deleteEmailTemplateRenderError 예제
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

이메일 템플릿 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes

응답

반환: GetEmailTemplateResponse

예제

getEmailTemplate 예제
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

이메일 템플릿 정의 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes

응답

반환: GetEmailTemplateDefinitionsResponse

예시

getEmailTemplateDefinitions 예제
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

이메일 템플릿 렌더링 오류 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
idstring예
skipdouble아니오

응답

반환: GetEmailTemplateRenderErrorsResponse

예시

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 // 필요에 따라 응답 사용
11 } catch (const std::exception& ex) {
12 // 오류 처리
13 }
14 });
15

이메일 템플릿 목록 가져오기 Internal Link

매개변수

이름형식필수설명
tenantIdstringYes
skipdoubleNo

응답

반환: GetEmailTemplatesResponse

예시

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

이메일 템플릿 렌더링 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
renderEmailTemplateBodyRenderEmailTemplateBody예
localestring아니오

응답

반환: RenderEmailTemplateResponse

예시

renderEmailTemplate 예시
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

이메일 템플릿 업데이트 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes
updateEmailTemplateBodyUpdateEmailTemplateBodyYes

응답

반환: APIEmptyResponse

예시

updateEmailTemplate 예시
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 // 성공 처리
11 })
12 .then([](pplx::task<void> t) {
13 try { t.get(); } catch (const std::exception &) { /* 오류 처리 */ }
14 });
15

이벤트 로그 가져오기 Internal Link

req tenantId urlId userIdWS

매개변수

NameTypeRequiredDescription
tenantIdstring예
urlIdstring예
userIdWSstring예
startTimeint64_t예
endTimeint64_t아니오

응답

반환: GetEventLogResponse

예시

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

전체 이벤트 로그 가져오기 Internal Link

req
tenantId
urlId
userIdWS

매개변수

이름유형필수설명
tenantIdstring예
urlIdstring예
userIdWSstring예
startTimeint64_t예
endTimeint64_t아니오

응답

반환: GetEventLogResponse

예제

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

피드 포스트 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
createFeedPostParamsCreateFeedPostParamsYes
optionsconst CreateFeedPostOptions&Yes

응답

Returns: CreateFeedPostsResponse

예시

createFeedPost 예제
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

공개 피드 포스트 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
createFeedPostParamsCreateFeedPostParams예
optionsconst CreateFeedPostPublicOptions&예

응답

반환: CreateFeedPostResponse

예제

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

공개 피드 포스트 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
postIdstringYes
optionsconst DeleteFeedPostPublicOptions&Yes

응답

반환: DeleteFeedPostPublicResponse

예시

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 // 성공 로직
8 }
9 });
10

피드 포스트 가져오기 Internal Link

req tenantId afterId

매개변수

이름형식필수설명
tenantIdstring예
optionsconst GetFeedPostsOptions&예

응답

반환: GetFeedPostsResponse

예시

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

공개 피드 포스트 가져오기 Internal Link

req tenantId afterId

매개변수

이름유형필수설명
tenantIdstring예
optionsconst GetFeedPostsPublicOptions&예

응답

반환: PublicFeedPostsResponse

예시

getFeedPostsPublic 예시
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 // 필요한 경우 processed 사용
11 }catch(const std::exception&){
12 // 오류 처리
13 }
14});
15

피드 포스트 통계 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
postIdsvector<string예
ssostring아니오

응답

반환: FeedPostsStatsResponse

예제

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

공개 사용자 반응 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
optionsconst GetUserReactsPublicOptions&Yes

응답

반환: UserReactsResponse

예시

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

공개 피드 포스트에 반응 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
postIdstringYes
reactBodyParamsReactBodyParamsYes
optionsconst ReactFeedPostPublicOptions&Yes

응답

반환: ReactFeedPostResponse

예제

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

피드 포스트 업데이트 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstringYes
idstringYes
feedPostFeedPostYes

응답

반환: APIEmptyResponse

예시

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

공개 피드 포스트 업데이트 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
postIdstring예
updateFeedPostParamsUpdateFeedPostParams예
optionsconst UpdateFeedPostPublicOptions&예

응답

반환: CreateFeedPostResponse

예시

updateFeedPostPublic 예시
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

공개 댓글 신고 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
commentIdstringYes
isFlaggedboolYes
ssostringNo

응답

반환: APIEmptyResponse

예시

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, sno)
8 .then([](pplx::task<std::shared_ptr<APIEmptyResponse>> t){
9 try{
10 auto resp = t.get();
11 }catch(const std::exception&){
12 }
13 });
14

큰 GIF 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
largeInternalURLSanitizedstring예

응답

반환: GifGetLargeResponse

예제

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

GIF 검색 가져오기 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring예
searchstring예
optionsconst GetGifsSearchOptions&예

응답

반환: GetGifsSearchResponse

예시

getGifsSearch 예시
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

트렌딩 GIF 가져오기 Internal Link

매개변수

이름형식필수설명
tenantIdstringYes
optionsconst GetGifsTrendingOptions&Yes

응답

반환: GetGifsTrendingResponse

예시

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

해시태그 추가 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
createHashTagBodyCreateHashTagBody예

응답

반환: CreateHashTagResponse

예시

addHashTag 예시
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

해시태그 대량 추가 Internal Link

매개변수

이름타입필수설명
tenantIdstringYes
bulkCreateHashTagsBodyBulkCreateHashTagsBodyYes

응답

Returns: BulkCreateHashTagsResponse

예제

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

해시태그 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
tagstringYes
deleteHashTagRequestBodyDeleteHashTagRequestBodyYes

응답

Returns: APIEmptyResponse

예시

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

해시태그 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
pagedoubleNo

응답

반환: GetHashTagsResponse

예제

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 // 응답 사용
10 } catch (const std::exception&) {
11 // 오류 처리
12 }
13});
14

해시태그 패치 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
tagstring예
updateHashTagBodyUpdateHashTagBody예

응답

반환: UpdateHashTagResponse

예제

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

중재 투표 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
commentIdstringYes
voteIdstringYes
optionsconst DeleteModerationVoteOptions&Yes

응답

반환: VoteDeleteResponse

예시

deleteModerationVote 예시
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

API 댓글 가져오기 Internal Link

매개변수

이름형식필수설명
tenantIdstring예
optionsconst GetApiCommentsOptions&예

응답

반환: ModerationAPIGetCommentsResponse

예제

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

API 내보내기 상태 가져오기 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstringYes
optionsconst GetApiExportStatusOptions&Yes

응답

Returns: ModerationExportStatusResponse

예시

getApiExportStatus 예시
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

API ID 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
optionsconst GetApiIdsOptions&Yes

응답

Returns: ModerationAPIGetCommentIdsResponse

예제

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

댓글에서 차단된 사용자 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
commentIdstring예
ssostring아니오

응답

반환: GetBannedUsersFromCommentResponse

예제

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

댓글 차단 상태 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
commentIdstringYes
ssostringNo

응답

반환: GetCommentBanStatusResponse

예시

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

댓글 하위 댓글 가져오기 Internal Link

매개변수

이름형식필수설명
tenantIdstring예
commentIdstring예
ssostring아니오

응답

반환: ModerationAPIChildCommentsResponse

예시

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

카운트 가져오기 Internal Link

Parameters

이름유형필수설명
tenantIdstring예
optionsconst GetCountOptions&예

Response

반환: ModerationAPICountCommentsResponse

Example

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

카운트들 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
ssostringNo

응답

반환: GetBannedUsersCountResponse

예제

getCounts 예제
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

로그 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
commentIdstringYes
ssostringNo

응답

반환: ModerationAPIGetLogsResponse

예시

getLogs 예제
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

수동 배지 가져오기 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstringYes
ssostringNo

응답

Returns: GetTenantManualBadgesResponse

Example

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 // 응답을 처리, 예: response->badgeList
10 } catch (const std::exception& ex) {
11 // 오류 처리
12 }
13 });
14

사용자 수동 배지 가져오기 Internal Link

매개변수

이름형식필수설명
tenantIdstringYes
optionsconst GetManualBadgesForUserOptions&Yes

응답

반환: GetUserManualBadgesResponse

예시

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

중재 댓글 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
commentIdstringYes
optionsconst GetModerationCommentOptions&Yes

응답

반환: ModerationAPICommentResponse

예시

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 // Process response as needed
12 } catch (const std::exception& ex) {
13 // Handle error
14 }
15 });
16

중재 댓글 텍스트 가져오기 Internal Link

매개변수

이름형식필수설명
tenantIdstringYes
commentIdstringYes
ssostringNo

응답

반환: GetCommentTextResponse

예시

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

사전 차단 요약 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
commentIdstringYes
optionsconst GetPreBanSummaryOptions&Yes

응답

반환: PreBanSummary

예제

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 // 요약 처리
12 } catch (const std::exception&) {
13 // 오류 처리
14 }
15 });
16

댓글 검색 요약 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
optionsconst GetSearchCommentsSummaryOptions&Yes

응답

Returns: ModerationCommentSearchResponse

예시

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

페이지 검색 가져오기 Internal Link

매개변수

이름형식필수설명
tenantIdstring예
optionsconst GetSearchPagesOptions&예

응답

반환: ModerationPageSearchResponse

예시

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 // use response
12 } catch (const std::exception& e) {
13 // handle error
14 }
15 });
16

사이트 검색 가져오기 Internal Link

매개변수

이름타입필수설명
tenantIdstring예
optionsconst GetSearchSitesOptions&예

응답

반환: ModerationSiteSearchResponse

예제

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 // 처리 로직
14 }
15 } catch (const std::exception&) {
16 // 오류 처리
17 }
18 });
19

검색 제안 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
optionsconst GetSearchSuggestOptions&예

응답

반환: ModerationSuggestResponse

예제

getSearchSuggest 예제
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

사용자 검색 가져오기 Internal Link

매개변수

이름형식필수설명
tenantIdstring예
optionsconst GetSearchUsersOptions&예

응답

반환: ModerationUserSearchResponse

예시

getSearchUsers 예시
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

신뢰 요소 가져오기 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring예
optionsconst GetTrustFactorOptions&예

응답

반환: GetUserTrustFactorResponse

예시

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

사용자 차단 선호도 가져오기 Internal Link

매개변수

이름형식필수설명
tenantIdstring예
ssostring아니오

응답

반환: APIModerateGetUserBanPreferencesResponse

예제

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

사용자 내부 프로필 가져오기 Internal Link

Parameters

이름유형필수설명
tenantIdstringYes
optionsconst GetUserInternalProfileOptions&Yes

Response

반환: GetUserInternalProfileResponse

Example

getUserInternalProfile 예시
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

댓글 투표 조정 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
commentIdstring예
adjustCommentVotesParamsAdjustCommentVotesParams예
optionsconst PostAdjustCommentVotesOptions&예

응답

반환: AdjustVotesResponse

예시

postAdjustCommentVotes 예시
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

API 내보내기 요청 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
optionsconst PostApiExportOptions&Yes

응답

반환: ModerationExportResponse

예시

postApiExport 예제
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 // 성공적인 내보내기 응답 처리
13 }
14 })
15 .wait();
16

댓글에서 사용자 차단 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
commentIdstringYes
optionsconst PostBanUserFromCommentOptions&Yes

응답

반환: BanUserFromCommentResult

예제

postBanUserFromComment 예제
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 // 결과 처리
11 })
12 .then([](pplx::task<void> t) {
13 try { t.get(); } catch (const std::exception& e) { /* 오류 처리 */ }
14 });
15

사용자 차단 취소 Internal Link

매개변수

이름형식필수설명
tenantIdstring예
banUserUndoParamsBanUserUndoParams예
ssostring아니오

응답

반환: APIEmptyResponse

예시

postBanUserUndo 예시
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 // 성공 처리
10});
11

대량 사전 차단 요약 Internal Link

매개변수

이름타입필수설명
tenantIdstring예
bulkPreBanParamsBulkPreBanParams예
optionsconst PostBulkPreBanSummaryOptions&예

응답

반환: BulkPreBanSummary

예시

postBulkPreBanSummary 예시
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

ID별 댓글 가져오기 Internal Link

매개변수

이름형식필수설명
tenantIdstring예
commentsByIdsParamsCommentsByIdsParams예
ssostring아니오

응답

반환: ModerationAPIChildCommentsResponse

예시

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

댓글 신고 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
optionsconst PostFlagCommentOptions&Yes

응답

Returns: APIEmptyResponse

예시

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

댓글 제거 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
optionsconst PostRemoveCommentOptions&Yes

응답

반환: PostRemoveCommentApiResponse

예시

postRemoveComment 예제
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 // 응답 처리
11 } catch (const std::exception& ex) {
12 // 오류 처리
13 }
14 });
15

삭제된 댓글 복원 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
commentIdstringYes
optionsconst PostRestoreDeletedCommentOptions&Yes

응답

반환: APIEmptyResponse

예시

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

댓글 승인 상태 설정 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
commentIdstringYes
optionsconst PostSetCommentApprovalStatusOptions&Yes

응답

반환: SetCommentApprovedResponse

예시

postSetCommentApprovalStatus 예시
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

댓글 검토 상태 설정 Internal Link

파라미터

이름유형필수설명
tenantIdstringYes
commentIdstringYes
optionsconst PostSetCommentReviewStatusOptions&Yes

응답

반환: APIEmptyResponse

예시

postSetCommentReviewStatus 예시
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

댓글 스팸 상태 설정 Internal Link

매개변수

이름타입필수설명
tenantIdstringYes
commentIdstringYes
optionsconst PostSetCommentSpamStatusOptions&Yes

응답

반환: APIEmptyResponse

예제

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

댓글 텍스트 설정 Internal Link

매개변수

이름형식필수설명
tenantIdstringYes
commentIdstringYes
setCommentTextParamsSetCommentTextParamsYes
optionsconst PostSetCommentTextOptions&Yes

응답

반환: SetCommentTextResponse

예시

postSetCommentText 예시
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

댓글 신고 해제 Internal Link

매개변수

이름형식필수설명
tenantIdstring예
commentIdstring예
optionsconst PostUnFlagCommentOptions&예

응답

반환: APIEmptyResponse

예제

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 // 여기에서 처리를 수행할 수 있습니다
9 })
10 .then([](pplx::task<void> t) {
11 try { t.get(); } catch (const std::exception&) {}
12 });
13

투표 등록 Internal Link

매개변수

이름형식필수설명
tenantIdstring예
commentIdstring예
optionsconst PostVoteOptions&예

응답

반환: VoteResponse

예시

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

배지 수여 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring예
badgeIdstring예
optionsconst PutAwardBadgeOptions&예

응답

반환: AwardUserBadgeResponse

예제

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

스레드 닫기 Internal Link

매개변수

이름유형필요설명
tenantIdstring예
urlIdstring예
ssostring아니오

응답

반환: APIEmptyResponse

예제

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

배지 제거 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
badgeIdstringYes
optionsconst PutRemoveBadgeOptions&Yes

응답

반환: RemoveUserBadgeResponse

예시

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

스레드 재열기 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
urlIdstring예
ssostring아니오

응답

반환: APIEmptyResponse

예시

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

신뢰 요소 설정 Internal Link

매개변수

이름형식필수설명
tenantIdstringYes
optionsconst SetTrustFactorOptions&Yes

응답

반환: SetUserTrustFactorResponse

예시

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

중재자 생성 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstringYes
createModeratorBodyCreateModeratorBodyYes

응답

반환: CreateModeratorResponse

예시

createModerator 예제
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

중재자 삭제 Internal Link

매개변수

이름타입필수설명
tenantIdstring예
idstring예
sendEmailstring아니오

응답

Returns: APIEmptyResponse

예시

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

중재자 가져오기 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring예
idstring예

응답

반환: GetModeratorResponse

예제

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

중재자 목록 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
skipdouble아니오

응답

반환: GetModeratorsResponse

예시

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

초대 전송 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
idstring예
fromNamestring예

응답

반환: APIEmptyResponse

예시

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 // 성공적인 초대를 처리합니다
9});
10

중재자 업데이트 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes
updateModeratorBodyUpdateModeratorBodyYes

응답

반환: APIEmptyResponse

예시

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

알림 카운트 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
idstring예

응답

반환: APIEmptyResponse

예제

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

캐시된 알림 카운트 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes

응답

반환: GetCachedNotificationCountResponse

예제

getCachedNotificationCount 예제
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 // 응답 처리
10 } catch (const std::exception&) {
11 // 오류 처리
12 }
13 });
14

알림 카운트 가져오기 Internal Link

매개변수

이름형식필수설명
tenantIdstring예
optionsconst GetNotificationCountOptions&예

응답

반환: GetNotificationCountResponse

예제

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

알림 가져오기 Internal Link

Parameters

이름형식필수설명
tenantIdstring예
optionsconst GetNotificationsOptions&예

Response

반환: GetNotificationsResponse

Example

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

알림 업데이트 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
idstring예
updateNotificationBodyUpdateNotificationBody예
userIdstring아니오

응답

Returns: APIEmptyResponse

예시

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

V1 페이지 반응 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
urlIdstring예
titlestring아니오

응답

반환: CreateV1PageReact

예시

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

V2 페이지 반응 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
urlIdstringYes
idstringYes
titlestringNo

응답

반환: CreateV1PageReact

예시

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

V1 페이지 반응 삭제 Internal Link

매개변수

이름형식필수설명
tenantIdstring예
urlIdstring예

응답

반환: CreateV1PageReact

예제

deleteV1PageReact 예시
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

V2 페이지 반응 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
urlIdstringYes
idstringYes

응답

반환: CreateV1PageReact

예시

deleteV2PageReact 예제
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

V1 페이지 좋아요 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
urlIdstring예

응답

반환: GetV1PageLikes

예제

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

V2 페이지 반응 가져오기 Internal Link

매개변수

이름형식필수설명
tenantIdstringYes
urlIdstringYes

응답

반환: GetV2PageReacts

예시

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

V2 페이지 반응 사용자 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
urlIdstringYes
idstringYes

응답

반환: GetV2PageReactUsersResponse

예제

getV2PageReactUsers 예제
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 // 필요에 따라 응답 사용
10 }catch(const std::exception&){
11 // 오류 처리
12 }
13});
14

페이지 추가 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
createAPIPageDataCreateAPIPageData예

응답

반환: AddPageAPIResponse

예시

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 // 성공적인 추가 처리
11 } else {
12 // 오류 처리
13 }
14 });
15

페이지 삭제 Internal Link

매개변수

이름형식필수설명
tenantIdstringYes
idstringYes

응답

반환: DeletePageAPIResponse

예제

deletePage 예제
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 // 필요에 따라 응답을 처리합니다
10 } catch (const std::exception& ex) {
11 // 오류를 처리합니다
12 }
13 });
14

오프라인 사용자 가져오기 Internal Link

현재 온라인 상태가 아닌, 해당 페이지의 과거 댓글 작성자입니다. displayName 기준으로 정렬됩니다. "Members" 섹션을 렌더링할 때 /users/online을 모두 소진한 후 이 API를 사용하세요. commenterName 기준 커서 페이지네이션: 서버는 부분 {tenantId, urlId, commenterName} 인덱스를 afterName부터 $gt로 순회하며, $skip 비용이 없습니다.

매개변수

이름타입필수설명
tenantIdstring예
urlIdstring예
optionsconst GetOfflineUsersOptions&예

응답

반환값: PageUsersOfflineResponse

예제

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

온라인 사용자 가져오기 Internal Link

Currently-online viewers of a page: 현재 웹소켓 세션이 해당 페이지에 구독 중인 사람들.

Returns anonCount + totalCount (room-wide subscribers, including anon viewers we don't enumerate).: anonCount + totalCount를 반환합니다 (방 전체 구독자 수, 열거되지 않은 익명 뷰어 포함).

Parameters

이름타입필수설명
tenantIdstringYes
urlIdstringYes
optionsconst GetOnlineUsersOptions&Yes

Response

반환: PageUsersOnlineResponse

Example

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

URL ID로 페이지 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
urlIdstring예

응답

반환: GetPageByURLIdAPIResponse

예시

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

페이지 목록 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes

응답

반환: GetPagesAPIResponse

예시

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

공개 페이지 목록 가져오기 Internal Link

테넌트의 페이지 목록을 가져옵니다. FChat 데스크톱 클라이언트가 방 목록을 채우는 데 사용됩니다. 각 페이지에 대한 해결된 사용자 정의 구성에서 enableFChat가 true이어야 합니다. SSO가 필요한 페이지는 요청 사용자의 그룹 접근 권한에 따라 필터링됩니다.

Parameters

이름유형필수설명
tenantIdstringYes
optionsconst GetPagesPublicOptions&Yes

응답

반환: GetPublicPagesResponse

예제

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 // 필요에 따라 응답 처리
10 }catch(const std::exception&){
11 // 필요에 따라 오류 처리
12 }
13});
14

사용자 정보 가져오기 Internal Link

테넌트에 대한 대량 사용자 정보. 주어진 userIds에 대해 User / SSOUser의 표시 정보를 반환합니다.
댓글 위젯에서 존재 이벤트를 통해 방금 등장한 사용자를 풍부하게 표시하기 위해 사용됩니다.
페이지 컨텍스트가 없으며: 프라이버시가 일관되게 적용됩니다 (비공개 프로필은 마스킹됩니다).

매개변수

이름유형필수설명
tenantIdstringYes
idsstringYes

응답

반환: PageUsersInfoResponse

예시

getUsersInfo 예시
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 // 응답 처리
10 }catch(const std::exception&){
11 // 오류 처리
12 }
13});
14

페이지 패치 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes
updateAPIPageDataUpdateAPIPageDataYes

응답

반환: PatchPageAPIResponse

예시

patchPage 예시
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 // 성공 처리
11 }
12 })
13 .then([](pplx::task<void> t) {
14 try { t.get(); } catch (const std::exception&) {}
15 });
16

보류 중인 웹훅 이벤트 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes

응답

Returns: APIEmptyResponse

예시

deletePendingWebhookEvent 예시
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

보류 중인 웹훅 이벤트 카운트 가져오기 Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsconst GetPendingWebhookEventCountOptions&Yes

Response

반환: GetPendingWebhookEventCountResponse

Example

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

보류 중인 웹훅 이벤트 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
optionsconst GetPendingWebhookEventsOptions&Yes

응답

반환: GetPendingWebhookEventsResponse

예제

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

질문 설정 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
createQuestionConfigBodyCreateQuestionConfigBody예

응답

반환: CreateQuestionConfigResponse

예제

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

질문 설정 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
idstring예

응답

반환: APIEmptyResponse

예시

deleteQuestionConfig 예시
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 // 성공적인 삭제 처리
8 })
9 .then([](pplx::task<void> t) {
10 try {
11 t.get();
12 } catch (const std::exception&) {
13 // 오류 처리
14 }
15 });
16

질문 설정 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes

응답

반환: GetQuestionConfigResponse

예제

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 // 필요에 따라 응답 사용
10 } catch (const std::exception&) {
11 // 오류 처리
12 }
13 });
14

질문 설정 목록 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
skipdouble아니오

응답

반환: GetQuestionConfigsResponse

예제

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

질문 설정 업데이트 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
idstring예
updateQuestionConfigBodyUpdateQuestionConfigBody예

응답

반환: APIEmptyResponse

예시

updateQuestionConfig 예시
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

질문 결과 생성 Internal Link

매개변수

이름타입필수설명
tenantIdstring예
createQuestionResultBodyCreateQuestionResultBody예

응답

반환: CreateQuestionResultResponse

예제

createQuestionResult 예시
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

질문 결과 삭제 Internal Link

Parameters

이름유형필수설명
tenantIdstring예
idstring예

Response

반환: APIEmptyResponse

예시

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 // 성공 처리
14 }
15 catch ( const std::exception& e )
16 {
17 // 오류 처리
18 }
19 } );
20}
21

질문 결과 가져오기 Internal Link

매개변수

이름형식필수설명
tenantIdstring예
idstring예

응답

반환: GetQuestionResultResponse

예시

getQuestionResult 예시
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

질문 결과 목록 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
optionsconst GetQuestionResultsOptions&예

응답

반환: GetQuestionResultsResponse

예시

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 // 응답 처리
10 });
11

질문 결과 업데이트 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
idstring예
updateQuestionResultBodyUpdateQuestionResultBody예

응답

반환: APIEmptyResponse

예시

updateQuestionResult 예시
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

질문 결과 집계 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
optionsconst AggregateQuestionResultsOptions&예

응답

반환: AggregateQuestionResultsResponse

예제

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

대량 질문 결과 집계 Internal Link

매개변수

이름타입필수설명
tenantIdstringYes
bulkAggregateQuestionResultsRequestBulkAggregateQuestionResultsRequestYes
forceRecalculateboolNo

응답

반환: BulkAggregateQuestionResultsResponse

예시

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

댓글과 질문 결과 결합 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
optionsconst CombineCommentsWithQuestionResultsOptions&Yes

응답

반환: CombineQuestionResultsWithCommentsResponse

예시

combineCommentsWithQuestionResults 예시
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 // 필요에 따라 combined 사용
12 }catch(const std::exception&){
13 }
14 });
15

SSO 사용자 추가 Internal Link

매개변수

이름타입필수설명
tenantIdstringYes
createAPISSOUserDataCreateAPISSOUserDataYes

응답

반환: AddSSOUserAPIResponse

예시

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

SSO 사용자 삭제 Internal Link

Parameters

이름유형필수설명
tenantIdstring예
idstring예
optionsconst DeleteSSOUserOptions&예

응답

반환: DeleteSSOUserAPIResponse

예시

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

이메일로 SSO 사용자 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
emailstring예

응답

반환: GetSSOUserByEmailAPIResponse

예시

getSSOUserByEmail 예시
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

ID로 SSO 사용자 가져오기 Internal Link

매개변수

이름형식필수설명
tenantIdstring예
idstring예

응답

반환: GetSSOUserByIdAPIResponse

예제

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

SSO 사용자 목록 가져오기 Internal Link

매개변수

이름형식필수설명
tenantIdstring예
skipint32_t아니오

응답

반환: GetSSOUsersResponse

예제

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

SSO 사용자 패치 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
idstring예
updateAPISSOUserDataUpdateAPISSOUserData예
updateCommentsbool아니오

응답

반환: PatchSSOUserAPIResponse

예시

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

SSO 사용자 저장 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes
updateAPISSOUserDataUpdateAPISSOUserDataYes
updateCommentsboolNo

응답

반환: PutSSOUserAPIResponse

예시

putSSOUser 예시
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

구독 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
createAPIUserSubscriptionDataCreateAPIUserSubscriptionData예

응답

반환: CreateSubscriptionAPIResponse

예시

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

구독 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes
userIdstringNo

응답

반환: DeleteSubscriptionAPIResponse

예시

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

구독 목록 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
userIdstring아니오

응답

Returns: GetSubscriptionsAPIResponse

예시

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 // 응답 처리
10 } catch (const std::exception& e) {
11 // 오류 처리
12 }
13 }
14);
15

구독 업데이트 Internal Link

Parameters

이름타입필수설명
tenantIdstring예
idstring예
updateAPIUserSubscriptionDataUpdateAPIUserSubscriptionData예
userIdstring아니오

Response

반환: UpdateSubscriptionAPIResponse

Example

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

테넌트 일일 사용량 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
optionsconst GetTenantDailyUsagesOptions&Yes

응답

반환: GetTenantDailyUsagesResponse

예시

getTenantDailyUsages 예제
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

테넌트 패키지 생성 Internal Link

매개변수

이름형식Required설명
tenantIdstringYes
createTenantPackageBodyCreateTenantPackageBodyYes

응답

반환: CreateTenantPackageResponse

예시

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

테넌트 패키지 삭제 Internal Link

매개변수

이름타입필수설명
tenantIdstring예
idstring예

응답

반환: APIEmptyResponse

예시

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

테넌트 패키지 가져오기 Internal Link

매개변수

이름타입필수설명
tenantIdstringYes
idstringYes

응답

반환: GetTenantPackageResponse

예시

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

테넌트 패키지 목록 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
skipdoubleNo

응답

반환: GetTenantPackagesResponse

예제

getTenantPackages 예제
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

테넌트 패키지 교체 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes
replaceTenantPackageBodyReplaceTenantPackageBodyYes

응답

반환값: APIEmptyResponse

예시

replaceTenantPackage 예시
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

테넌트 패키지 업데이트 Internal Link

매개변수

이름타입필수설명
tenantIdstring예
idstring예
updateTenantPackageBodyUpdateTenantPackageBody예

응답

반환: APIEmptyResponse

예시

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 // success handling
14 } catch (const std::exception& ex) {
15 // error handling
16 }
17 });
18

테넌트 사용자 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
createTenantUserBodyCreateTenantUserBody예

응답

반환: CreateTenantUserResponse

예시

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

테넌트 사용자 삭제 Internal Link

매개변수

이름타입필수설명
tenantIdstringYes
idstringYes
optionsconst DeleteTenantUserOptions&Yes

응답

반환: APIEmptyResponse

예시

deleteTenantUser 예제
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

테넌트 사용자 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes

응답

반환: GetTenantUserResponse

예시

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 // 필요한 경우 응답 사용
9 } catch (const std::exception&) {
10 // 오류 처리
11 }
12 });
13

테넌트 사용자 목록 가져오기 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring예
skipdouble아니오

응답

반환: GetTenantUsersResponse

예시

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

테넌트 사용자 교체 Internal Link

매개변수

이름타입필수설명
tenantIdstringYes
idstringYes
replaceTenantUserBodyReplaceTenantUserBodyYes
updateCommentsstringNo

응답

반환: APIEmptyResponse

예시

replaceTenantUser 예시
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

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes
redirectURLstringNo

응답

반환: APIEmptyResponse

예시

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

테넌트 사용자 업데이트 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
idstring예
updateTenantUserBodyUpdateTenantUserBody예
updateCommentsstring아니오

응답

반환: APIEmptyResponse

예제

updateTenantUser 예제
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

테넌트 생성 Internal Link

매개변수

이름타입필수설명
tenantIdstringYes
createTenantBodyCreateTenantBodyYes

응답

반환: CreateTenantResponse

예시

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

테넌트 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
idstring예
surestring아니오

응답

반환: APIEmptyResponse

예시

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

테넌트 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
idstring예

응답

반환: GetTenantResponse

예제

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

테넌트 목록 가져오기 Internal Link

매개변수

이름타입필수설명
tenantIdstring예
optionsconst GetTenantsOptions&예

응답

반환: GetTenantsResponse

예제

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

테넌트 업데이트 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes
updateTenantBodyUpdateTenantBodyYes

응답

반환: APIEmptyResponse

예제

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

티켓 상태 변경 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
userIdstring예
idstring예
changeTicketStateBodyChangeTicketStateBody예

응답

반환: ChangeTicketStateResponse

예제

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

티켓 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
userIdstring예
createTicketBodyCreateTicketBody예

응답

반환: CreateTicketResponse

예시

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 // 응답을 필요한 대로 사용합니다
13 }catch(const std::exception&){
14 // 오류 처리
15 }
16});
17

티켓 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
idstring예
userIdstring아니오

응답

반환: GetTicketResponse

예시

getTicket 예시
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

티켓 목록 가져오기 Internal Link

매개변수

이름타입필요설명
tenantIdstringYes
optionsconst GetTicketsOptions&Yes

응답

반환: GetTicketsResponse

예시

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

번역 가져오기 Internal Link

매개변수

이름타입필수설명
r_namespacestring예
componentstring예
optionsconst GetTranslationsOptions&예

응답

반환: GetTranslationsResponse

예제

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

이미지 업로드 Internal Link

이미지를 업로드하고 크기를 조정하기

매개변수

이름형식필수설명
tenantIdstringYes
fileHttpContentYes
optionsconst UploadImageOptions&Yes

응답

반환: UploadImageResponse

예시

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

배지 진행 상황(ID) 가져오기 Internal Link

매개변수

이름타입필수설명
tenantIdstring예
idstring예

응답

반환: APIGetUserBadgeProgressResponse

예시

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

배지 진행 상황(사용자 ID) 가져오기 Internal Link

매개변수

이름타입필수설명
tenantIdstringYes
userIdstringYes

응답

반환: APIGetUserBadgeProgressResponse

예제

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

배지 진행 목록 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
optionsconst GetUserBadgeProgressListOptions&예

응답

반환: APIGetUserBadgeProgressListResponse

예시

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 // 배지 처리
12 }
13 });
14

사용자 배지 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
createUserBadgeParamsCreateUserBadgeParams예

응답

반환: APICreateUserBadgeResponse

예시

createUserBadge 예제
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

사용자 배지 삭제 Internal Link

Parameters

이름타입필수설명
tenantIdstringYes
idstringYes

Response

반환: APIEmptySuccessResponse

Example

deleteUserBadge 예시
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

사용자 배지 가져오기 Internal Link

Parameters

이름타입필수설명
tenantIdstring예
idstring예

Response

반환: APIGetUserBadgeResponse

Example

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

사용자 배지 목록 가져오기 Internal Link

매개변수

이름형식필수설명
tenantIdstringYes
optionsconst GetUserBadgesOptions&Yes

응답

반환: APIGetUserBadgesResponse

예시

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

사용자 배지 업데이트 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes
updateUserBadgeParamsUpdateUserBadgeParamsYes

응답

반환: APIEmptySuccessResponse

예제

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

사용자 알림 카운트 가져오기 Internal Link

Parameters

이름유형필수설명
tenantIdstringYes
ssostringNo

응답

반환: GetUserNotificationCountResponse

예시

getUserNotificationCount 예시
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 // use resp as needed
8 }catch(const std::exception&){
9 // handle error
10 }
11});
12

사용자 알림 가져오기 Internal Link

매개변수

이름형식필수설명
tenantIdstring예
optionsconst GetUserNotificationsOptions&예

응답

반환: GetMyNotificationsResponse

예시

getUserNotifications 예시
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

사용자 알림 카운트 초기화 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
ssostring아니오

응답

반환: ResetUserNotificationsResponse

예시

resetUserNotificationCount 예시
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

사용자 알림 초기화 Internal Link

Parameters

이름유형필수설명
tenantIdstring예
optionsconst ResetUserNotificationsOptions&예

Response

반환: ResetUserNotificationsResponse

Example

resetUserNotifications 예제
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 // 응답 처리
8 });
9

사용자 알림 댓글 구독 상태 업데이트 Internal Link

Enable or disable notifications for a specific comment.

Parameters

NameTypeRequiredDescription
tenantIdstringYes
notificationIdstringYes
optedInOrOutstringYes
commentIdstringYes
ssostringNo

Response

반환: UpdateUserNotificationCommentSubscriptionStatusResponse

Example

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

사용자 알림 페이지 구독 상태 업데이트 Internal Link

Enable or disable notifications for a page. When users are subscribed to a page, notifications are created for new root comments, and also

Parameters

이름유형필수설명
tenantIdstringYes
urlIdstringYes
urlstringYes
pageTitlestringYes
subscribedOrUnsubscribedstringYes
ssostringNo

Response

반환: UpdateUserNotificationPageSubscriptionStatusResponse

Example

updateUserNotificationPageSubscriptionStatus 예제
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 // 필요에 따라 resp를 처리
12 });
13

사용자 알림 상태 업데이트 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstringYes
notificationIdstringYes
newStatusstringYes
ssostringNo

응답

Returns: UpdateUserNotificationStatusResponse

예시

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

사용자 존재 상태 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
urlIdWSstring예
userIdsstring예

응답

반환: GetUserPresenceStatusesResponse

예시

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

사용자 검색 Internal Link

매개변수

이름타입필수설명
tenantIdstringYes
urlIdstringYes
optionsconst SearchUsersOptions&Yes

응답

반환: SearchUsersResult

예시

searchUsers 예시
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

사용자 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes

응답

반환: GetUserResponse

예시

getUser 예제
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 // 응답을 필요에 따라 처리
14 } catch (const std::exception&) {
15 // 오류 처리
16 }
17 });
18

투표 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
commentIdstring예
directionstring예
optionsconst CreateVoteOptions&예

응답

반환: VoteResponse

예시

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

투표 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
idstring예
editKeystring아니오

응답

반환: VoteDeleteResponse

예시

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 // 필요한 경우 응답 처리
10 } catch (const std::exception&) {
11 // 오류 처리
12 }
13});
14

투표 목록 가져오기 Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstring예
urlIdstring예

Response

반환: GetVotesResponse

Example

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 // 오류 처리
12 }
13});
14

사용자 투표 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
urlIdstring예
optionsconst GetVotesForUserOptions&예

응답

반환: GetVotesForUserResponse

예시

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 // 응답을 처리합니다, 예: 투표를 반복합니다
10 }
11});
12

도움이 필요하신가요?

C++ SDK 사용 중 문제가 있거나 질문이 있는 경우, 다음을 이용해 주세요:

기여

기여를 환영합니다! 기여 지침은 GitHub 저장소를 방문해 주세요.