# Link directories To integrate the Meeting SDK for Linux, import the Video SDK libraries, initialize the SDK, authenticate the SDK, authenticate the users, and finally enable logging. ## Import the Video SDK libraries As mentioned in the [Verify Files](/docs/meeting-sdk/linux/get-started/download#verify-files) section, the header folder `./h`, the `lib*so` libraries, and the `./qt_libs` dependency library are the needed header files and libraries to build an SDK Application. Assume your project has a file structure similar to this one, and see how you can include and link the SDK into your project. ```plaintext demo ├── include │ └── h └── lib └── qt_libs └── lib*so ``` ```plaintext # Link directories link_directories( ${CMAKE_SOURCE_DIR}/lib ${CMAKE_SOURCE_DIR}/lib/qt_libs ${CMAKE_SOURCE_DIR}/lib/qt_libs/Qt/lib ) include_directories( ${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/include/h ) # Create a symbolic link execute_process(COMMAND ln -s libmeetingsdk.so libmeetingsdk.so.1 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/lib/zoom_meeting_sdk ) ``` ## Initialize the SDK To initialize the SDK, add setup information to the `InitParam` structure. 1. Set the `strWebDomain` and the `strSupportUrl` to "https://zoom.us". 2. Set the `emLanguageID`. In this example, we set the language ID to English. 3. Set the `enableGenerateDump` to either `true` or `false`. `True` means that the SDK log will be generated. UI. 4. Call the `InitSDK` method to initialize the SDK. ```cpp ZOOM_SDK_NAMESPACE::InitParam initParam; initParam.strWebDomain = "https://zoom.us"; initParam.strSupportUrl = "https://zoom.us"; //set language id initParam.emLanguageID = ZOOM_SDK_NAMESPACE::LANGUAGE_English; initParam.enableLogByDefault = true; initParam.enableGenerateDump = true; err = ZOOM_SDK_NAMESPACE::InitSDK(initParam); ``` Check the error returned from `InitSDK` method. If the error is anything other than `SDKERR_SUCCESS`, the SDK initialization did not succeed. Check the returned [error code](/docs/meeting-sdk/linux/error-codes/) for more information. ## Authenticate the SDK To authenticate the SDK and start and join meetings, you will need to authenticate the meeting. - A [JWT token](/docs/sdk/meeting-sdk/auth) to authenticate the app - **For individual users, a Zoom Access Key (ZAK)** - send a **GET** request to the https://api.zoom.us/v2/users/{userId}/token with `type="zak"` and pass it to the SDK with [JoinMeetingParam4WithoutLogin](https://marketplacefront.zoom.us/sdk/meeting/linux/meeting__service__interface_8h.html#a7b819101ef0be761aa5a9165885a59ba)'s [userZAK](https://marketplacefront.zoom.us/sdk/meeting/linux/structtag_join_param4_without_login.html#a83c6513e5d1822596445622d19f514af) or [StartMeetingParamsWithoutLogin](https://marketplacefront.zoom.us/sdk/meeting/linux/structtag_start_param4_without_login.html)'s [userZAK](https://marketplacefront.zoom.us/sdk/meeting/linux/structtag_start_param4_without_login.html#a0af5af5f511af4a8f66ecd31f8361844). - **For apps that need to join the meeting as individual users, an OnBehalf Of (OBF) token** - send a GET request to https://api.zoom.us/v2/users/{userId}/token with `type="onbehalf"` and pass it to the SDK with [JoinMeetingParam4WithoutLogin](https://marketplacefront.zoom.us/sdk/meeting/linux/meeting__service__interface_8h.html#a7b819101ef0be761aa5a9165885a59ba)'s [onBehalfToken](https://marketplacefront.zoom.us/sdk/meeting/linux/structtag_join_param4_without_login.html#aa3c0a12a7f76a735d1a6bf4aef227ead). To authenticate the SDK, populate the `AuthContext` structure. - Set the `jwt_token` with the generated JWT. - Call `SDKAuth` to authenticate the SDK. ```cpp ZOOM_SDK_NAMESPACE::AuthContext param; param.jwt_token = "jwt Token"; ZOOM_SDK_NAMESPACE::IAuthService* _auth_service; ZOOM_SDK_NAMESPACE::CreateAuthService(&_auth_service); ZOOM_SDK_NAMESPACE::SDKError err = _auth_service->SDKAuth(param); ``` ## Authenticate the users Before you start using the Meeting SDK for Linux, authenticate the user first. - To log in an end user, use a **Zoom Access Key (ZAK)** token - send a **GET** request to the https://api.zoom.us/v2/users/{userId}/token with `type="zak"` and pass it to the SDK with [JoinMeetingParam4WithoutLogin](https://marketplacefront.zoom.us/sdk/meeting/linux/meeting__service__interface_8h.html#a7b819101ef0be761aa5a9165885a59ba)'s [userZAK](https://marketplacefront.zoom.us/sdk/meeting/linux/structtag_join_param4_without_login.html#a83c6513e5d1822596445622d19f514af). - To log in apps that need to join the meeting as individual users, an On Behalf Of (OBF) token - send a GET request to https://api.zoom.us/v2/users/{userId}/token with `type="onbehalf"` and pass it to the SDK with [JoinMeetingParam4WithoutLogin](https://marketplacefront.zoom.us/sdk/meeting/linux/meeting__service__interface_8h.html#a7b819101ef0be761aa5a9165885a59ba)'s [onBehalfToken](https://marketplacefront.zoom.us/sdk/meeting/linux/structtag_join_param4_without_login.html#aa3c0a12a7f76a735d1a6bf4aef227ead). - To log out an end user, use the `LogOut()` method. ## Enable logging To enable logging, set the `enableLogByDefault` parameter in your `InitParam` object to `true`. ```cpp initParam.enableLogByDefault = true; ``` Once you've initialized the log feature, the log file appears under `/home/{username}/.zoomsdk`. ---