FastComments.com

FastComments C++ SDK


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

FastComments API용 공식 C++ SDK

리포지토리

GitHub에서 보기


요구사항 Internal Link


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

설치 Internal Link

Install Dependencies

sudo apt install libcpprest-dev libboost-all-dev

Building from Source

mkdir build
cd build
cmake ..
make

Installing

sudo make install

Library Contents

이 라이브러리에는 생성된 API 클라이언트와 API 작업을 더 쉽게 해주는 SSO 유틸리티가 포함되어 있습니다.

Public vs Secured APIs

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 아이디 가져오기 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

아이디로 댓글 조회 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

Past commenters on the page who are NOT currently online. Sorted by displayName.
현재 온라인이 아닌 페이지의 과거 댓글자들. displayName 기준으로 정렬됩니다.

Use this after exhausting /users/online to render a "Members" section.
/users/online을 사용한 후에, "Members" 섹션을 렌더링하기 위해 사용합니다.

Cursor pagination on commenterName: server walks the partial {tenantId, urlId, commenterName} index from afterName forward via $gt, no $skip cost.
commenterName에 대한 커서 페이지네이션: 서버는 {tenantId, urlId, commenterName} 부분 인덱스를 afterName 이후로 $gt를 사용해 진행하며, $skip 비용이 없습니다.

매개변수

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

응답

반환: 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 저장소를 방문해 주세요.