줌-sdk-electron에서 할 수 있는 일을 조사할 때까지의 그것(Qita에서 전재)
개요
줌이 제공하는 일렉트로닉의 API가 할 수 있을 것 같은 일은 참고하면 이해하기 어려울 것 같아서 시연 앱을 시작하려고 했는데 의외로 반한 부분이 많았어요. 그거에 대해서.
참고 자료
Zoom Electron SDK 시작
매우 이해하기 쉽지만 구체적인 코드 변경 내용에 대한 설명이 없어 덧붙이려고 합니다.당시의 판본과 조금 다르기 때문에 줄 수의 부분에 편차가 있을 수 있습니다...
기사만 읽으면 이 사람은 차라리 내가 쓴 것처럼 SDK Key/Secret의 인증은 기본...https://github.com/zoom/zoom-sdk-electron/commit/dbdff5a65dff40c1bccb7a1b269391ea72d8f6b5#diff-3b4cc93c41d4067694a6d9ff6ae923efL643 이 약속은 대규모 수정이 있었다.)
일단 필요한 것들 준비.
※ 전제는 맥 버전에서 실시
기본 준비 - 구축
node 12.0.0 (이터레이션이 필요하지 않을 수 있음)
$ nvm install 12.0.0
$ node -v
v12.0.0
소스 코드$ git clone https://github.com/zoom/zoom-sdk-electron
필요한 것을 순서대로 넣고 구축$ npm install --save-dev [email protected] -g
$ npm install node-gyp -g
$ npm install bindings -g
$ cd zoom-sdk-electron
$ sh build_nodeaddon_mac.sh
주변 환경에 Warning이 많이 생겼다.gyp info ok
cp: ../../../../../../Bin/Mac/Release: No such file or directory
cp: ./build/Release/zoomsdk.node.dSYM: unable to copy extended attributes to ../../../../../../Bin/Mac/Release: No such file or directory
cp: ../../../../../../Bin/Mac/Release/Contents: No such file or directory
cp: ./build/Release/zoomsdk.node.dSYM/Contents: unable to copy extended attributes to ../../../../../../Bin/Mac/Release/Contents: No such file or directory
cp: ../../../../../../Bin/Mac/Release/Contents/Resources: No such file or directory
cp: ./build/Release/zoomsdk.node.dSYM/Contents/Resources: unable to copy extended attributes to ../../../../../../Bin/Mac/Release/Contents/Resources: No such file or directory
cp: ../../../../../../Bin/Mac/Release/Contents/Resources/DWARF: No such file or directory
cp: ./build/Release/zoomsdk.node.dSYM/Contents/Resources/DWARF: unable to copy extended attributes to ../../../../../../Bin/Mac/Release/Contents/Resources/DWARF: No such file or directory
cp: ../../../../../../Bin/Mac/Release/Contents/Resources/DWARF/zoomsdk.node: No such file or directory
cp: ../../../../../../Bin/Mac/Release/Contents/Info.plist: No such file or directory
결과는 실패로 보이지만 문제가 없을 것 같아 앞으로 돌진해야 한다.프레젠테이션 시작
$ sh run_demo_mac.sh
run_demo_mac.sh: line 12: cd: ./demo: No such file or directory
이것도 틀린 거야?!내 생각에는 이렇다.이후 다양한 것들이 생겨난다.순조롭게 작동했어...그러나...
objc[43150]: Class ZoomLauncher3rdSdkIPCReciever is implemented in both /Users/tetsunosuke/work/zoom/electron/zoom-sdk-electron/demo/node_modules/electron/dist/Electron.app/Contents/Frameworks/ZoomSDKChatUI.framework/Versions/A/ZoomSDKChatUI (0x10d2e6b30) and /Users/tetsunosuke/work/zoom/electron/zoom-sdk-electron/demo/node_modules/electron/dist/Electron.app/Contents/Frameworks/zChatApp.bundle/Contents/MacOS/zChatApp (0x115173560). One of the two will be used. Which one is undefined.
InitSDK 0
Error: Send error, 60 Operation timed out
Error: Send error, 60 Operation timed out
Error: Send error, 60 Operation timed out
에 무슨 오류가 생겼어요.신경 안 써도 동작을 하고 있으니까 잠시 무시해.그리고요?
이렇게 스타트 데모를 누르면...
위에서 말한 바와 같이 요구
jwt token
하지만 jwt token의 유효기간을 고려하여 먼저 시험SDK Key/SDK Secret
하는 것이 좋다고 생각합니다.앞으로 그 전제에서 착수하자.참고 기사
Zoom Electron SDK 入門
와 비교하면 이곳은 조금 다르다.착수하다
그 전에 Key/Secret을 SDK로 발행
https://marketplace.zoom.us/ 서명
Develop→Build App을 선택합니다.Choose your app type에서 SDK를 선택하십시오.
다양한 정보를 입력해 앱을 만들면
SDK 키, SDK 시크릿을 지불해야 하므로 제어해야 합니다.
응용 프로그램의 시작을 간소화하다.
이쪽도 참고 기사와 마찬가지로 내부 절차를 미리 파악하면
functionObj[arg1](arg2, arg3, arg4, arg5);
function createWindow() {
// Create the browser window.
- showDomainwindow();
+ // showDomainwindow();
+ functionObj["setDomain"](
+ "https://www.zoom.us", /* domain */
+ true /* enable_log */
+ );
}
는 상술한 것과 같다고 할 수 있다.※ 그런데 이 도마인은 도대체 뭔가요?
또한 jwt token을 요청하는 화면이 호출됩니다
pages/index.html
.ProceSDKReady()를 부를 때 showAuthWindow()라고 부르기 때문이다.
여기서부터 처리할게요.
이번 인증은 SDK의 Key/Secret이므로
zoomauth.AuthWithJwtToken(sdk_context);
로 대체zoomauth.SDKAuth(key, secret);
합니다.즉
이렇게 새로운 함수의main.js에 설치
+ sdkLogin: function(key, secret) {
+ let ret = zoomauth.SDKAuth(key, secret);
+ if (ret == 0) {
+ showWaitingWindow();
+ }
}
이렇게 쓰면 sdkLogiin이 호칭되고 답장(sdkauthCB)이 나중에 움직인다.언어를 일본어로 처리(ZoomSDK LANGAGE ID.LANGAGE English→ZoomSDK LANGAGE ID.LANGAGE Japanese)하면 다음과 같은 차이가 있다.
main.js
function ProcSDKReady() {
- showAuthwindow()
var options = {
authcb: sdkauthCB,
logincb: loginretCB,
logoutcb: null
}
zoomauth = zoomsdk.GetAuth(options);
+ functionObj["sdkLogin"](
+ "ここに取得していた SDK Keyを", /* key */
+ "ここに取得していた SDK Secretを" /* secret */
+ );
}
이로써 zoom 클라이언트의 주요 실현은 이미 완성되었습니다!
나중에 프레젠테이션의 용도를 즐겨보세요.
GiitHub에서 공동 테스트 시작
Reference
이 문제에 관하여(줌-sdk-electron에서 할 수 있는 일을 조사할 때까지의 그것(Qita에서 전재)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/tetsunosuke/articles/182abe58245dce59ae44텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)