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

linux Zoom_sdk not generating authentication return callback

@617505352 ,

Could you share more details such as the code snippet, and the version which you are using?

the version is 5.15.12.7715 ,





img_v2_557a5c5d-a7ae-434e-8d98-fb84cead099g

not recv onAuthenticationReturn callback.

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

  1. initialise meeting SDK
  2. authenticate meeting SDK

wait for authentication completed callback

  1. Join Meeting
  2. Start Raw Recording
  3. 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?

@617505352 ,

There is no more beta testing group.
After getting this package, did you manually update the SDK to 5.15.12?


yes.

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
img_v2_748844e9-07d9-4afb-bfd4-5c731902faeg
@chunsiong.zoom

@617505352 ,

how about the header files?


@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

these 5 has no one tigger


the program run result :
img_v2_d4e61df9-940f-4a25-a780-608bd78a7bcg

@617505352 ,

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) ;
};