Linux Zoom meeting sdk not generating authentication return callback,can provide a sample demo?

According to the way you write it, it still doesn’t work. there is have any log or can you provide a sample demo which can download ? I would also like to inquire whether meeting sdk(windows) multiple instances are supported, for example, multiple processes can run the sdk at the same time.The sdk version is the latest 5.15.12

According to the way you write it, it still doesn’t work. there is have any log or can you provide a sample demo which can download ? I would also like to inquire whether meeting sdk(windows) multiple instances are supported, for example, multiple processes can run the sdk at the same time.The sdk version is the latest 5.15.12

@617505352 ,

I’m working on a sample, will share with you shortly.

For Windows SDK, you cannot run multiple instances on the same OS

@chunsiong.zoom @617505352 I am also facing the same issue, the auth callback is not returning.

Could you please provide the sample code for the same ?

@617505352

I’ll add some information here while I’m pending the publishing of the sample code.

Here are some libraries which I’ve used on Ubuntu 22.
This list is not optimized yet, there might be some libraries which are unused, but included as well.

Install necessary dependencies

apt-get update &&
apt-get install -y build-essential cmake
apt-get install -y pkgconf
apt-get install -y gtkmm-3.0

apt-get update && apt-get install -y --no-install-recommends --no-install-suggests
libx11-xcb1
libxcb-xfixes0
libxcb-shape0
libxcb-shm0
libxcb-randr0
libxcb-image0
libxcb-keysyms1
libxcb-xtest0
libdbus-1-3
libglib2.0-0
libgbm1
libxfixes3
libgl1
libdrm2
libgssapi-krb5-2
openssl
ca-certificates
pkg-config
libegl-mesa0
libsdl2-dev
g+±multilib

Install CURL related libs

apt-get install -y libcurl4-openssl-dev

Install ALSA

apt-get install -y libasound2 libasound2-plugins alsa alsa-utils alsa-oss

Install Pulseaudio

apt-get install -y pulseaudio pulseaudio-utils ffmpeg

@617505352 , @dhruv1778

Here’s how my CMakeLists.txt looks like

cmake_minimum_required(VERSION 3.14)

project(meetingSDKDemo CXX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
add_definitions(-std=c++14)
set(CMAKE_BUILD_TYPE Debug)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)

find_package(PkgConfig REQUIRED)
pkg_check_modules(GTKMM REQUIRED gtkmm-3.0)


include_directories(${GTKMM_INCLUDE_DIRS})
link_directories(${GTKMM_LIBRARY_DIRS})
add_definitions(${GTKMM_CFLAGS_OTHER})


include_directories(${CMAKE_SOURCE_DIR}/include)
include_directories(${CMAKE_SOURCE_DIR}/include/h) #this is where the SDK header files are located
include_directories(/usr/include/glib-2.0/)
include_directories(/usr/include/glib-2.0/glib)
include_directories(/usr/lib/x86_64-linux-gnu/glib-2.0/include/)

link_directories(${CMAKE_SOURCE_DIR}/lib/zoom_meeting_sdk) #this is where my SDK .so files are located
link_directories(${CMAKE_SOURCE_DIR}/lib/zoom_meeting_sdk/qt_libs)
link_directories(${CMAKE_SOURCE_DIR}/lib/zoom_meeting_sdk/qt_libs/Qt/lib)

add_executable(meetingSDKDemo 
              ${CMAKE_SOURCE_DIR}/meeting_sdk_demo.cpp
              ${CMAKE_SOURCE_DIR}/MeetingReminderEventListener.h
              ${CMAKE_SOURCE_DIR}/MeetingReminderEventListener.cpp
              ${CMAKE_SOURCE_DIR}/MeetingServiceEventListener.h
              ${CMAKE_SOURCE_DIR}/MeetingServiceEventListener.cpp
              ${CMAKE_SOURCE_DIR}/AuthServiceEventListener.h
              ${CMAKE_SOURCE_DIR}/AuthServiceEventListener.cpp
              ${CMAKE_SOURCE_DIR}/MeetingParticipantsCtrlEventListener.h
              ${CMAKE_SOURCE_DIR}/MeetingParticipantsCtrlEventListener.cpp
              ${CMAKE_SOURCE_DIR}/MeetingRecordingCtrlEventListener.h
              ${CMAKE_SOURCE_DIR}/MeetingRecordingCtrlEventListener.cpp
              ${CMAKE_SOURCE_DIR}/ZoomSDKRenderer.h
              ${CMAKE_SOURCE_DIR}/ZoomSDKRenderer.cpp
              ${CMAKE_SOURCE_DIR}/ZoomSDKAudioRawData.h
              ${CMAKE_SOURCE_DIR}/ZoomSDKAudioRawData.cpp
              )

target_link_libraries(meetingSDKDemo gcc_s gcc)
target_link_libraries(meetingSDKDemo meetingsdk)
target_link_libraries(meetingSDKDemo glib-2.0)
target_link_libraries(meetingSDKDemo ${GTKMM_LIBRARIES})
target_link_libraries(meetingSDKDemo curl)
target_link_libraries(meetingSDKDemo pthread)

# Create a symbolic link
execute_process(COMMAND ln -s libmeetingsdk.so libmeetingsdk.so.1
    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/lib/zoom_meeting_sdk
)





configure_file(${CMAKE_SOURCE_DIR}/config.json ${CMAKE_SOURCE_DIR}/bin/config.json COPYONLY)
file(COPY ${CMAKE_SOURCE_DIR}/lib/zoom_meeting_sdk/ DESTINATION ${CMAKE_SOURCE_DIR}/bin)

HI Chun Sing I’m Jameel Perkins ASKING For online GAMING For ZOOM Meetings Multiplayer video game - Wikipedia?

@jameelperkins4 do create a separate thread if this is a different topic.

OK I Understand Can u make it Happend ?

@jameelperkins4 I’m not sure what you are asking for

USING_ZOOM_SDK_NAMESPACE



class MeetingServiceEventListener : public IMeetingServiceEvent {};





class Main : public IAuthServiceEvent {

  private:

    IAuthService *_authService;

    IMeetingService *_meetingService;

    uint64_t _meetingNumber;

    std::string _sessionName;

    std::string _apiKey;

    std::string _apiSecret;



  public:

    Main() {

        uint64_t meetingNumber = 4452252955; // replace with real

        std::string sessionName = std::to_string(meetingNumber);

        std::string apiKey = "...";

        std::string apiSecret = "...";

        _meetingNumber = meetingNumber;

        _sessionName = sessionName;

        _apiKey = apiKey;

        _apiSecret = apiSecret;

        InitParam initParam;

        initParam.strWebDomain = "https://zoom.us";

        initParam.strSupportUrl = "https://zoom.us";

        initParam.emLanguageID = LANGUAGE_English;

        initParam.enableLogByDefault = true;

        initParam.enableGenerateDump = true;

        SDKError err = InitSDK(initParam);

        if (err != SDKERR_SUCCESS) {

            std::cout << "Failed to init SDK." << err << std::endl;

        }

        SDKError authServiceInitReturnVal = CreateAuthService(&_authService);

        if (authServiceInitReturnVal != SDKError::SDKERR_SUCCESS) {

            std::cout << "Failed to init Auth Service." << err << std::endl;

        }

        SDKError meetingServiceInitReturnVal =

            CreateMeetingService(&_meetingService);

        if (meetingServiceInitReturnVal != SDKError::SDKERR_SUCCESS) {

            std::cout << "Failed to init meeting service. "

                      << meetingServiceInitReturnVal << std::endl;

        }

    }



    void onAuthenticationReturn(ZOOM_SDK_NAMESPACE::AuthResult ret) {

        std::cout << "Authentication result: " << _authService->GetAuthResult()

                  << std::endl;

        if (ret == AuthResult::AUTHRET_JWTTOKENWRONG) {

            std::cout << "JWT token is wrong." << std::endl;

            // SDK Auth call failed because the JWT token is invalid.

        } else if (ret == AuthResult::AUTHRET_SUCCESS) {

            std::cout << "Auth return success." << std::endl;

            join();

        } else {

            std::cout << "Something else went wrong: " << ret << std::endl;

            //QCoreApplication::exit(1);

        }

    }



    void onLoginReturnWithReason(LOGINSTATUS ret, IAccountInfo *pAccountInfo,

                                 LoginFailReason reason) {

        std::cout << "Login return with reason." << reason << std::endl;

    }



    void onLogout() { std::cout << "Logout" << std::endl; }



    void onZoomIdentityExpired() {

        std::cout << "Zoom identity expired" << std::endl;

    }



    void onZoomAuthIdentityExpired() {

        std::cout << "Zoom auth identity expired" << std::endl;

    }



    void Run() {

        int r = run();

        if (r != 0) {

          

        }

    }



    int run() {

        AuthContext authContext;

        std::string token = "xxxxx";

        authContext.jwt_token = token.c_str();

        std::cout << "Using token: " << authContext.jwt_token << std::endl;

        // Create IAuthService object to perform Auth actions

        SDKError authCallReturnValue(SDKERR_UNAUTHENTICATION);

        SDKError errSetEvent = _authService->SetEvent(this);

        if (errSetEvent != SDKError::SDKERR_SUCCESS) {

            std::cout << "Failed to set authListener. " << errSetEvent

                      << std::endl;

            return 1;

        }

        authCallReturnValue = _authService->SDKAuth(authContext);

        if (authCallReturnValue != SDKError::SDKERR_SUCCESS) {

            std::cout << "Failed to auth SDK. " << authCallReturnValue

                      << std::endl;

            return 1;

        }

        return 0;

    }



    int join() {

        ZOOM_SDK_NAMESPACE::JoinParam joinParam;

        joinParam.userType = ZOOM_SDK_NAMESPACE::SDK_UT_WITHOUT_LOGIN;

        ZOOM_SDK_NAMESPACE::JoinParam4WithoutLogin &withoutloginParam =

            joinParam.param.withoutloginuserJoin;

        withoutloginParam.meetingNumber = _meetingNumber;

        withoutloginParam.vanityID = NULL;

        withoutloginParam.userName = "testing";

        withoutloginParam.psw = "";

        withoutloginParam.customer_key = NULL;

        withoutloginParam.webinarToken = NULL;

        withoutloginParam.isVideoOff = true;

        withoutloginParam.isAudioOff = false;



        SDKError joinErr = _meetingService->Join(joinParam);

        if (joinErr != SDKError::SDKERR_SUCCESS) {

            std::cout << "Failed to join meeting. " << joinErr << std::endl;

            return 1;

        }

        return 0;

    }

};



static Main *mainInstance = NULL;



void Run() { mainInstance->Run(); }



int main(int argc, char **argv) {

    mainInstance = new Main();

    Run();



    while (1) {

        sleep(2);

    }



    return 0;  

}








i use this code ,but the event loop replace wndows GetMessage ,it work good.

@617505352 @15107478682

please take a look here

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.