storycraft / node-kakao

Loco protocol compatible library
MIT License
405 stars 115 forks source link

request: login as android tablet client instead of Windows client #109

Closed ha1fstack closed 3 years ago

ha1fstack commented 3 years ago

Kakaotalk update which supports android tablet multi device was released today. If node-kakao client virtually login as tablet, it should be much convenient since you can now use real PC client simultaneously. Configurable client login argument option (whether login as tablet or Windows) would be useful.

storycraft commented 3 years ago

I don't know how tablet device login. Connecting loco server may not have big difference if you obtain access token somehow. Customzing client config is already available but may not work if there are difference with pc. Check default configuration from src/config/client-config.ts. You can override some config value like this.

new TalkClient('name', 'deviceUUID', {
    'agent': 'android'
});

^ This doesn't work due to difference between mobile and pc.

Note: NodeKakao v4 complete rewrite is currently being actively developed. Check dev branch for more information. You may request as feature when pull request draft is available.

storycraft commented 3 years ago

From v4, to login as android tablet, you should change several config values.

Sample code below

import { util, xvc, AuthApiClient, TalkClient } from 'node-kakao';

const config = {
  agent: 'android',

  // Network operator (999 if unknown)
  mccmnc: '999',

  // This should be valid tablet device model or server will refuse request.
  deviceModel: 'SM-T976N',

  // PC version append build number in appVersion, android uses only version number.
  appVersion: '9.2.1',
  version: '9.2.1',

  // 0 == WIFI, 3 == Cellular
  netType: 0,

  subDevice: true
}

// Generate random device uuid.
// If you specify already registered pc uuid, you will login as pc.
const tabletUUID = util.randomAndroidSubDeviceUUID();

// Override default config,  uses AndroidSubXVCProvider for xvc calculating.
const api = await AuthApiClient.create('NAME', tabletUUID, config, xvc.AndroidSubXVCProvider);
const client = new TalkClient(config);
nunnu1028 commented 3 years ago

tenor

nunnu1028 commented 3 years ago

4.0.0-rc.2에서 태블릿으로 로그인을 해본 결과 로그인에 성공하였다고 나오나 대부분의 이벤트가 오지 않고 얼마 뒤에 아무런 에러도 없이 연결이 끊깁니다. 🤔

확인결과 문법상 오류로 확인

storycraft commented 3 years ago

해당 문제는 로그, 오류 내용과 함께 이슈를 작성해주세요

nunnu1028 commented 3 years ago

해당 문제는 로그, 오류 내용과 함께 이슈를 작성해주세요

149