Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

deviceUUID, accessToken을 찾는 방법에 대한 질문 #1

Open
rhseung opened this issue Sep 18, 2024 · 2 comments
Open

deviceUUID, accessToken을 찾는 방법에 대한 질문 #1

rhseung opened this issue Sep 18, 2024 · 2 comments

Comments

@rhseung
Copy link

rhseung commented Sep 18, 2024

const { ReactClient, ReactionType } = require('kakao-react');

const client = ReactClient.create({
    accessToken: '',
    deviceUUID: ''
})

ReactClient 클래스의 인스턴스를 생성할 때 들어가는 authorizeConfig 인자의 accessToken, deviceUUID를 어떻게 찾는지 모르겠어서 질문 드립니다.

제가 노력한 바로는, deviceUUID는 아래와 같이 찾을 수 있었고, (맞는지는 모르겠습니다.)

const Settings = android.provider.Settings;

// 메신저봇R API2의 App 객체
const uuid = Settings.Secure.getString(App.getContext().getContentResolver(), Settings.Secure.ANDROID_ID);

accessToken은 다음 중 하나인 것 같는데 맞는지 모르겠습니다.


아래와 같은 코드를 실행해보니 오류가 발생했습니다.

"use strict";

var Settings = android.provider.Settings;
var { ReactClient, ReactionType } = require('kakao-react');

var client = ReactClient.create({
  accessToken: '...',
  deviceUUID: Settings.Secure.getString(App.getContext().getContentResolver(), Settings.Secure.ANDROID_ID)
}, {
  version: '10.3.4',
});

var bot = /* DBManager (https://github.com/NyangBotLab/DBManager_deploy) */

bot.on('message', function (chat, channel) {
  channel.send('before');
  try {
    channel.send(JSON.stringify(client.react(channel.id, chat.id, ReactionType.HEART)));
  } catch(e) {
    channel.send(e.stack);
  }
});

bot.start();

image

오류를 어떻게 고칠 수 있을지 모르겠어서 이슈를 올립니다.

@naijun0403
Copy link
Owner

제가 올린 스크립트가 있습니다. 현재도 작동하는지는 잘 모르겠지만 참고해보시면 좋을꺼같습니다.

@rhseung
Copy link
Author

rhseung commented Sep 19, 2024

스크립트를 읽고 각 키가 무엇을 의미하는지 알았습니다만 해당 스크립트에서 오류가 나는 97번 줄을 주석 처리하고 모듈로 사용하여 다음 코드를 작성했습니다.

"use strict";

var bot = /* DBManager */;

var { KakaoAuthJacker } = require('kakao-auth-jacker');
var jacker = new KakaoAuthJacker('com.kakao.talk');

var { ReactClient, ReactionType } = require('kakao-react');
var client = ReactClient.create({
  accessToken: String(jacker.authToken()),
  deviceUUID: String(jacker.deviceId())
},
//{version: '10.3.4'}
);

bot.on('message', function (chat, channel) {
  try {
    channel.send(JSON.stringify(client.react(channel.id, chat.id, ReactionType.HEART)));
  } catch (e) {
    channel.send(e + "\n" + e.stack);
  } 
});

bot.start();

위 코드를 실행하였더니, UNAUTHENTICATED 오류는 뜨지 않지만 에러가 catch에 들어왔습니다.

JavaException: java.lang.IllegalArgumentException: Unexpected char 0x01 at 0 in header value: {...accessToken...}-{...deviceUUID...}
	at file:/storage/emulated/0/msgbot/global_modules/kakao-react/src/request/index.js:89
	at file:/storage/emulated/0/msgbot/global_modules/kakao-react/src/client/react-client.js:28
	at react:19
	at file:/storage/emulated/0/msgbot/global_modules/BotOperator/DBManager/modules/emitter/eventemitter.js:75
	at file:/storage/emulated/0/msgbot/global_modules/BotOperator/DBManager/DBManager/DBManager.js:782

accessToken을 보니 image 앞에 이상한 유니코드가 존재합니다. 이 에러는 어떻게 고쳐야할까요??

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants