본문으로 건너뛰기
버전: 5.18.3

LINE SDK for Unity 사용

Android 및 iOS 플랫폼에서 LINE Unity SDK를 사용하여 뒤끝에 로그인 합니다.

Flow of the Process
  1. Line 로그인 기능을 통해 라인 계정으로 로그인
  2. 라인 계정으로 로그인하여 라인 idToken 획득
  3. 라인 idToken 검증을 통해 뒤끝 Access token 획득
  4. 뒤끝 Access token을 통해 뒤끝 서버에 로그인
Line SDK 동작 환경
  • Line 로그인 기능은 아래의 환경 이상에서 동작합니다.
    • Unity 2020.3.15 이상, iOS 및 Android 모듈이 설치된 경우
    • iOS 13.0 이상, Xcode 14.1 이상
    • Android Target API Level 33 (Android 13) 이상

초기 설정

라인 개발자 계정 설정

라인 개발자 콘솔에 로그인 하기 위해서는 라인 비즈니스 계정이 필요합니다.

1. 라인 개발자 콘솔 접속 및 채널 생성

  • 라인 개발자 콘솔에 접속하여 로그인하고, Create a new channel을 클릭하여 Line Login 채널을 생성합니다. image

2. Line Login 채널 생성 설정

  • 앱 생성시 App Type 항목에서 Web app, Mobile app에 모두 체크하고 채널을 생성합니다. image

3. 채널 생성 완료

  • 생성이 완료되면 생성된 채널을 클릭합니다. image
  • Basic Settings 탭을 클릭합니다. image

4. OpenID Connect 적용

  • Basic Settings 탭의 하단에 위치한 OpenID Connect를 Apply 버튼을 클릭합니다.
    image
  • 라인에 로그인한 유저의 이메일 정보를 가져오기 위해 요구사항에 알맞게 제출하여 OpenID Connect를 활성화 시킵니다. image
  • OpenID Connect 활성화 후 Permissions에 OC_EMAIL이 추가 되었는지 확인 합니다. image

5. Use LINE Login in your web app 활성화

  • 최상단으로 돌아가 LINE Login을 클릭하여 Use LINE Login in your web app 부분을 활성화 합니다. image

6. 뒤끝 콘솔 인증 정보에 라인 정보 입력

  • 뒤끝 콘솔 인증 정보에 생성한 라인 채널의 Channel ID와 Channel secret값을 적용합니다. image
  • Channel ID와 Channel secret값은 Basic Settings에서 확인 가능합니다. imageimage

Line SDK 설치 및 적용

1. 라인 SDK 유니티패키지 설치

  • 라인에서 제공하는 라인 SDK 유니티패키지파일을 다운 받아 사용중인 유니티 프로젝트에 라인 SDK를 설치 합니다.

2. LineSDK 프리팹 설정

  • Assets > LineSDK폴더에 존재하는 LineSDK 프리팹을 드래그 또는 복사하여 하이어라키에 위치 시킵니다. image
  • 하이어라키에 있는 LineSDK 프리팹을 클릭하여 나타나는 인스펙터창에 생성한 라인 채널의 Basic Settings에 있던 Channel ID를 입력합니다. image

3. 구현 및 확인

  • 예제 코드를 참고해서 로직을 완성 시키고 Android/iOS 환경에서 빌드하여 로그인을 실행합니다.

AuthorizeFederation

public BackendReturnObject AuthorizeFederation(string federationToken, FederationType type);
public BackendReturnObject AuthorizeFederation(string federationToken, FederationType type, string ect);

파라미터

ValueTypeDescription
federationTokenstring각 로그인 플러그인을 통해 생성된 token 값
federationTypeFederationType페더레이션의 종류.(FederationType.Line)
ectstring(Optional) 부가적으로 나오는 정보들 중에 저장하고 싶은 정보

설명

애플의 회원정보 토큰 값을 이용하여 회원가입/로그인을 시도합니다.

일반 코드 Example

public void StartLineFederation()
{
Debug.Log("Start Line Federation");

var scopes = new string[] { "profile", "openid", "email"/*, "offline_access"*/ };

LineSDK.Instance.Login(scopes, result =>
{
result.Match(loginResult =>
{
// 로그인 성공 시 이 부분이 실행됩니다.
Debug.Log("LINE 로그인 성공!");
Debug.Log($"UserId : {loginResult.UserProfile.UserId}");
Debug.Log($"User Display Name : {loginResult.UserProfile.DisplayName}");
Debug.Log($"Status Message : {loginResult.UserProfile.StatusMessage}");
Debug.Log($"Picture Url : {loginResult.UserProfile.PictureUrl}");

Debug.Log("뒤끝 서버 라인 계정 로그인");
var loginBro = Backend.BMember.AuthorizeFederation(loginResult.AccessToken.IdTokenRaw, FederationType.Line);
if (loginBro.IsSuccess())
{
Debug.Log("라인 로그인 페더레이션 성공 : " + loginBro);
Backend.BMember.UpdateFederationEmail(loginResult.UserProfile.UserId, FederationType.Line);
BackendInit.instance.SetFederationName("라인 로그인");
}
else
{
Debug.Log("라인 로그인 페더레이션 실패 : " + loginBro);
}
},
error =>
{
//라인 로그인 실패 시 이 부분이 실행됩니다.
Debug.LogError("LINE 로그인 실패!");
Debug.LogError("에러: " + error.Message);
}
);
});
}

ReturnCase

Success cases

로그인에 성공한 경우
statusCode : 200
message : Success

신규 회원가입에 성공한 경우
statusCode : 201
message : Success

Error cases

차단당한 계정일 경우
statusCode : 403
errorCode : 콘솔에서 입력한 차단된 사유
message : forbidden blocked user, 금지된 blocked user

뒤끝 콘솔에 입력한 라인 정보가 잘못되었을 경우
statusCode : 401
errorCode : BadUnauthorizedException
Message : bad [LINE] invalid_request, 잘못된 [LINE] invalid_request 입니다