linux Zoom_sdk not generating authentication return callback
Could you share more details such as the code snippet, and the version which you are using?
How can I achieve only pull streaming rawdata without render and no ui?
@617505352 , based on the code which you have shared, are you part of the beta testing group and recently updated from 5.14.5 to 5.15.2?
There are some updates to the interfaces when the versions updated. Did the compiler throw any error related to IAuthServiceEvent?
By default there is no UI for Meeting SDK Linux. If you are using the beta testing group’s sample app, the UI is only for demonstration and testing flow.
You will need to write something like this in your main method
- initialise meeting SDK
- authenticate meeting SDK
wait for authentication completed callback
- Join Meeting
- Start Raw Recording
- Subscribe to user’s raw video and audio
beta testing group?how can join it? there is no any error related to IAuthServiceEvent
@617505352 , the sample code which you are running right now, was provided to the beta testing group couple of months ago.
got it, how to solve the problem?update the sdk version or join beta testing group?
There is no more beta testing group.
After getting this package, did you manually update the SDK to 5.15.12?
4,5 What are the corresponding api interfaces?
@617505352 , could you share how you upgraded the SDK?
Sorry for being so specific, I want to make sure we cover the mandatory steps
1.down sdk from which picture show
2 link the new libso ,actually the same code, windows is ok

@chunsiong.zoom
@617505352 please tag me in your response.
did you overwrite your existing h folder with the ones from the downloaded h holders?
The header files from your previous version needs to be deleted and replace with the new headers
I’m sure I got it, otherwise I’ll get a compilation error
@617505352 please tag me in your response, if not I won’t get a notification and might not respond to future replies.
The implementation should have these 5
I’ll try to explain how I’m getting this to work.
On my main thread, I have a method called AuthMeetingSDK.
m_pAuthService
is declared as ZOOM_SDK_NAMESPACE::IAuthService* m_pAuthService;
There is a callback which I’ve declared called OnAuthenticationComplete
on my main thread.
I’m using my own AuthServiceEventListener
. I’ll share the .h & .cpp below
void OnAuthenticationComplete()
{
if (isHeadless) {
JoinMeeting(nullptr, nullptr, nullptr);
}
}
void AuthMeetingSDK(Gtk::TextView* text_view)
{
SDKError err(SDKError::SDKERR_SUCCESS);
//create auth service
if ((err = CreateAuthService(&m_pAuthService)) != SDKError::SDKERR_SUCCESS) {};
std::cerr << "AuthService created." << std::endl;
//Create a param to put in jwt token
ZOOM_SDK_NAMESPACE::AuthContext param;
//set the event listener for onauthenticationcompleted
if ((err = m_pAuthService->SetEvent(new AuthServiceEventListener(&OnAuthenticationComplete))) != SDKError::SDKERR_SUCCESS) {};
std::cout << "AuthServiceEventListener added." << std::endl;
if (!token.size() == 0)
{
param.jwt_token = token.c_str();
std::cerr << "AuthSDK:success " << std::endl;
}
//attempt to authenticate
ZOOM_SDK_NAMESPACE::SDKError sdkErrorResult = m_pAuthService->SDKAuth(param);
if (ZOOM_SDK_NAMESPACE::SDKERR_SUCCESS != sdkErrorResult)
{
if (text_view)
{
Glib::RefPtr<Gtk::TextBuffer> buffer = text_view->get_buffer();
buffer->set_text("AuthSDK:error\n");
}
std::cerr << "AuthSDK:error " << std::endl;
}
else
{
if (text_view)
{
Glib::RefPtr<Gtk::TextBuffer> buffer = text_view->get_buffer();
buffer->set_text("AuthSDK:success\n");
std::cerr << "AuthSDK:success " << std::endl;
}
}
}
AuthServiceEventListener.cpp
#include "AuthServiceEventListener.h"
#include <iostream>
AuthServiceEventListener::AuthServiceEventListener(void(*onAuthSuccess)())
{
onAuthSuccess_ = onAuthSuccess;
}
void AuthServiceEventListener::onAuthenticationReturn(ZOOM_SDK_NAMESPACE::AuthResult ret) {
if (ret == ZOOM_SDK_NAMESPACE::AuthResult::AUTHRET_JWTTOKENWRONG)
{
// SDK Auth call failed because the JWT token is invalid.
std::cout << "Auth failed: JWT Token is invalid." << std::endl;
}
else if (ret == ZOOM_SDK_NAMESPACE::AuthResult::AUTHRET_SUCCESS)
{
// SDK Authenticated successfully
std::cout << "Auth succeeded: JWT." << std::endl;
if (onAuthSuccess_) onAuthSuccess_();
}
else
std::cout << "Auth failed: " << ret << std::endl;
}
void AuthServiceEventListener::onLoginReturnWithReason(LOGINSTATUS ret, IAccountInfo* pAccountInfo, LoginFailReason reason)
{
std::cout << "onLoginReturnWithReason: " << reason << std::endl;
}
void AuthServiceEventListener::onLogout()
{
std::cout << "onLogout" << std::endl;
}
void AuthServiceEventListener::onZoomIdentityExpired()
{
std::cout << "onZoomIdentityExpired" << std::endl;
}
void AuthServiceEventListener::onZoomAuthIdentityExpired()
{
std::cout << "onZoomAuthIdentityExpired" << std::endl;
}
// void AuthServiceEventListener::onNotificationServiceStatus(SDKNotificationServiceStatus status)
// {
// std::cout << "onNotificationServiceStatus: " << status << std::endl;
// }
AuthServiceEventListener.h
#include "auth_service_interface.h"
USING_ZOOM_SDK_NAMESPACE
class AuthServiceEventListener : public IAuthServiceEvent
{
void (*onAuthSuccess_)();
public:
AuthServiceEventListener(void (*onAuthSuccess)());
/// \brief Authentication result callback.
/// \param ret Authentication result value. For more details, see \link AuthResult \endlink enum.
virtual void onAuthenticationReturn(AuthResult ret);
/// \brief Callback of login result with fail reason.
/// \param ret Login status. see \link LOGINSTATUS \endlink enum.
/// \param pAccountInfo Valid when the ret is LOGINRET_SUCCESS. Otherwise NULL.
/// \param reason Login fail reason. Valid when the ret is LOGIN_FAILED. Otherwise LoginFail_None. see \link LoginFailReason \endlink enum.
virtual void onLoginReturnWithReason(LOGINSTATUS ret, IAccountInfo* pAccountInfo, LoginFailReason reason);
/// \brief Logout result callback.
virtual void onLogout();
/// \brief Zoom identity has expired, please re-login or generate a new zoom access token via REST Api.
virtual void onZoomIdentityExpired();
/// \brief Zoom authentication identity will be expired in 10 minutes, please re-auth.
virtual void onZoomAuthIdentityExpired();
// /// \brief Notification service status changed callback.
// /// \param status The value of transfer meeting service. For more details, see \link SDKNotificationServiceStatus \endlink.
// virtual void onNotificationServiceStatus(SDKNotificationServiceStatus status) ;
};