List Conference Participants

👍

You're ready for this tutorial if you've got the following:

A FreeClimb account
A registered application
A configured FreeClimb Number
Your tools and language installed


Node.js

Using an instance of the FreeClimb SDK, an asynchronous request for all conference participants associated with a given ConferenceId (not provided in the example) can be initiated. Additional filtering criteria such as Talk and Listen are possible if provided. Successful invocation of the get method will return the participants which will allow for the sequential iteration through the entire list of conference participants.

Create your package.json file and save in the root directory of your project:

{
  "name": "node-list-participants-tutorial",
  "version": "1.0.0",
  "dependencies": {
    "@freeclimb/sdk": "^1.0.0",
    "dotenv": "^8.1.0"
  }
}

Install the package by running the following in the command line/terminal:

yarn install

Example code:

require('dotenv').config()
const freeclimbSDK = require('@freeclimb/sdk')
 
const accountId = process.env.ACCOUNT_ID
const apiKey = process.env.API_KEY
// your FreeClimb API credentials (available in the Dashboard) - be sure to set up environment variables to store these values
const freeclimb = freeclimbSDK(accountId, apiKey)
// Invoke get participants method
getConferenceParticipants(conferenceId).then(participants => {
  // Use participants
}).catch(err => {
  // Catch Errors
})
 
async function getConferenceParticipants(conferenceId) {
  // Create array to store all participants
  const participants = []
  // Invoke GET method to retrieve initial list of participant information
  const first = await freeclimb.api.conferences.participants(conferenceId).getList()
  participants.push(...first.participants)
  // Get Uri for next page
  let nextPageUri = first.nextPageUri
  // Retrieve entire participant list
  while (nextPageUri) {
    const nextPage = await freeclimb.api.conferences.participants(conferenceId).getNextPage(nextPageUri)
    participants.push(...nextPage.participants)
    nextPageUri = nextPage.nextPageUri
  }
  return participants}

Java

Using a ParticipantsRequester instance created from the ConferencesRequester in the FreeClimbClient, a synchronous request for all conference participants associated with a given ConferenceId can be initiated. Additional filtering criteria such as Talk and Listen are possible if provided. Successful invocation of the get method will return a ParticipantList object which will allow for the sequential iteration through the entire list of conference participants.

Create your build.gradle file and save it to the root directory in your project:

/*
 * This file was generated by the Gradle 'init' task.
 *
 * This is a general purpose Gradle build.
 * Learn how to create Gradle builds at https://guides.gradle.org/creating-new-gradle-builds
 */

buildscript {
    repositories {
        mavenCentral()
        maven { url 'https://jitpack.io' }
    }
  //Add the dependency
    dependencies {
        classpath "org.springframework.boot:spring-boot-gradle-plugin:2.1.6.RELEASE"
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

bootJar {
    baseName = 'gs-spring-boot'
    version =  '0.1.0'
}

repositories {
    mavenCentral()
    maven { url 'https://jitpack.io' }
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

dependencies {
    compile "org.springframework.boot:spring-boot-starter-web"
    testCompile "junit:junit"
    compile 'com.github.FreeClimbAPI:FreeClimb-Java-SDK:3.0.0'
}

sourceSets {
    main {
        java {
            srcDirs = ['src']
        }
    }
}

Build the file by running the following in your terminal/command line:

gradle build

Example code:

import com.vailsys.freeclimb.api.FreeClimbClient;
import com.vailsys.freeclimb.api.FreeClimbException;
import com.vailsys.freeclimb.api.conference.participant.Participant;
import com.vailsys.freeclimb.api.conference.participant.ParticipantList;
import com.vailsys.freeclimb.api.conference.participant.ParticipantsSearchFilters
 
import java.util.ArrayList;
public ArrayList listConferenceParticipants() {
    ParticipantsSearchFilters filters = new ParticipantsSearchFilters();
    filters.setTalk(true);
    filters.setListen(true);
    try {
        // Create FreeClimbClient object
        // accountId & apiKey can be found under API credentials on the FreeClimb Dashboard
        FreeClimbClient client = new FreeClimbClient(accountId, apiKey);
        //Invoke get method to retrieve initial list of conference participant information
        ParticipantList participantList = client.conferences.getParticipantsRequester(conferenceId).get();
 
        //Check if the list is empty by checking the total size
        if(participantList.getTotalSize() > 0){
            //retrieve all conference participant information from the server
            while(participantList.getLocalSize() < participantList.getTotalSize()){
                participantList.loadNextPage();
            }
 
            //Create a list of the conference participants
            ArrayList<Participant> list = participantList.export();
 
            // Loop through the list to process conference participant information
            for(Participant participant : list){
                //Do some processing
            }
            return list;
        }
    } catch(FreeClimbException ex){
        //Exception throw upon failure
        ex.printStackTrace();
    }
    return null;
}

C#

Using a ConferencesRequester instance created from the getConferencesRequester method in the FreeClimbClient, a synchronous request for all conference participants associated with a given conferenceId can be initiated. Filtering for criteria, such as Talk and Listen properties, is possible as shown in this tutorial. Successful invocation of the get method will return a ParticipantList object which will allow for the sequential iteration through the entire list of conference participants. In this tutorial we read through all pages of participants and place into one list that is returned.

The tutorial is implemented in one method that returns a list of Participant instances for the conference whose conferenceId is passed. This can be used in a web app, console app, etc.

Imports used:

using System;
using System.Collections.Generic;
using com.freeclimb.api;
using com.freeclimb.api.conference;

Example code:

public static IList<Participant> GetConferenceParticipantsList (string conferenceId) {
  string acctId = getAcctId ();
  string apiKey = getApiKey ();
  IList<Participant> ret = new List<Participant> ();
  FreeClimbClient client = new FreeClimbClient (acctId, apiKey);
  // the last two parameters are to filter on the participants talk and listen properties respectively
  ParticipantList participantList = client.getConferencesRequester.getParticipants (conferenceId);
  if (participantList.getTotalSize > 0) {
    // Retrieve all pages of results
    while (participantList.getLocalSize < participantList.getTotalSize) {
      participantList.loadNextPage ();
    }
    foreach (IFreeClimbCommon item in participantList.export ()) {
      Participant participant = item as Participant;
      // do whatever you need to do with participant object which contains all the conference properties
      ret.Add (participant);
    }
  }
  return ret;
}