> For the complete documentation index, see [llms.txt](/llms.txt)

# GS2-SDK for UE5 Blueprint 튜토리얼

GS2-SDK for UE5 Blueprint 로 계정을 생성하고 로그인하기까지를 구현해 봅시다



중간까지는 일반적인 튜토리얼과 동일한 순서로 진행됩니다.

[GS2 설정]()

[SDK 설정]()

[크리덴셜(API 키) 생성]()

[로그인 처리에 필요한 리소스 준비]()

## 클라이언트 초기화

![img.png](img.png)

`GS2::Core::Action::Initialize` 노드를 생성하고, clientId / clientSecret / 접속할 리전을 설정합니다.
clientId / clientSecret 에는 [크리덴셜(API 키) 생성]() 에서 생성한 값을 설정합니다.

초기화에 성공한 경우 OnSuccess 가 호출되고, 실패한 경우 OnError 가 호출됩니다.

성공 시에는 Client 에 GS2 클라이언트 객체가, 실패 시에는 Error 에 실패 사유의 에러 객체가 반환됩니다.

## GS2-Account 클라이언트 생성

![img_1.png](img_1.png)

초기화 시 얻은 Client 객체를 지정하여 `GS2::Account::Service` 노드를 생성합니다.

Service 에 GS2-Account 의 기능을 이용하기 위한 서비스 클라이언트가 반환됩니다.

## Namespace 객체 생성

![img_2.png](img_2.png)

GS2-Account 의 서비스 클라이언트를 지정하여 `GS2::Account::Namespace` 노드를 생성합니다.
Namespace Name 에는 [로그인 처리에 필요한 리소스 준비]() 에서 생성한 네임스페이스 이름을 지정합니다.

Namespace 에 GS2-Account 의 Namespace 객체가 반환됩니다.

## 익명 계정 신규 생성

![img_3.png](img_3.png)

GS2-Account 의 Namespace 객체를 지정하여 `GS2::Account::Action::Create` 노드를 생성합니다.

계정 생성에 성공한 경우 OnSuccess 가 호출되고, 실패한 경우 OnError 가 호출됩니다.

성공 시에는 Account 에 생성된 계정 객체가, 실패 시에는 Error 에 실패 사유의 에러 객체가 반환됩니다.

## 계정 객체에서 값 추출

![img_4.png](img_4.png)

계정 객체를 지정하여 `GS2::Account::Fetch::GetValueOfAccount` 노드를 생성합니다.

계정 값 추출에 성공한 경우 OnSuccess 가 호출되고, 실패한 경우 OnError 가 호출됩니다.

성공 시에는 Value 에 계정 객체의 값이, 실패 시에는 Error 에 실패 사유의 에러 객체가 반환됩니다.
구조체를 전개함으로써 발급된 사용자ID와 비밀번호를 추출할 수 있습니다.

## 로그인

![img_5.png](img_5.png)

로그인 처리를 실행하기 위해 `GS2::Core::Action::Login` 노드를 생성합니다.

Login 노드는 Client 와 Authenticator 의 지정이 필요합니다.
Client 에는 `GS2::Core::Action::Initialize` 노드로 생성한 Client 를 지정합니다.
Authenticator 에는 `GS2::Core::CreateGs2Authenticator` 노드로 생성한 Authenticator 를 지정합니다.
UserId / Password 에는 앞서 생성한 사용자ID와 비밀번호를 지정합니다.

로그인에 성공한 경우 OnSuccess 가 호출되고, 실패한 경우 OnError 가 호출됩니다.

성공 시에는 AccessToken 에 생성된 액세스 토큰 객체가, 실패 시에는 Error 에 실패 사유의 에러 객체가 반환됩니다.

액세스 토큰은 로그인이 필요한 API 호출 시 필요한 파라미터입니다.

## 로그인 후 호출 가능한 API 호출

로그인 후 호출 가능한 API 호출 예시로, 인계 정보 목록을 취득해 보겠습니다.

![img_6.png](img_6.png)

액세스 토큰 객체를 사용하여 `GS2::Account::Me` 로 자신의 계정 객체를 생성합니다.
그 후, 자신의 계정 객체를 사용하여 `GS2::Account::Fetch::ListOfTakeOver` 노드를 생성하고, 인계 정보 목록을 취득합니다.

인계 정보 목록 취득에 성공한 경우 OnSuccess 가 호출되고, 실패한 경우 OnError 가 호출됩니다.

성공 시에는 Values 에 인계 정보 배열이, 실패 시에는 Error 에 실패 사유의 에러 객체가 반환됩니다.

Values 를 `For Each Loop` 노드로 반복하면서 값을 추출합니다.




