NAME
Bb::Collaborate::Ultra - Perl bindings for Blackboard Ultra virtual classrooms
VERSION
Version 0.01.02
SYNOPSIS
use Bb::Collaborate::Ultra::Connection;
use Bb::Collaborate::Ultra::Session;
use Bb::Collaborate::Ultra::User;
use Bb::Collaborate::Ultra::LaunchContext;
my %credentials = (
issuer => 'OUUK-REST-API12340ABCD',
secret => 'ABCDEF0123456789AA',
host => 'https://xx-csa.bbcollab.com',
);
# connect to server
my $connection = Bb::Collaborate::Ultra::Connection->new(\%credentials);
$connection->connect;
# create a virtual classroom, starts now runs, for 15 minutes
my $start = time() + 60;
my $end = $start + 900;
my $session = Bb::Collaborate::Ultra::Session->post($connection, {
name => 'Test Session',
startTime => $start,
endTime => $end,
},
);
# define a session user
my $user = Bb::Collaborate::Ultra::User->new({
extId => 'dwarring',
displayName => 'David Warring',
email => 'david.warring@gmail.com',
firstName => 'David',
lastName => 'Warring',
});
# register the user. obtain a join URL
my $launch_context = Bb::Collaborate::Ultra::LaunchContext->new({
launchingRole => 'moderator',
editingPermission => 'writer',
user => $user,
});
my $url = $launch_context->join_session($session);
BACKGROUND
Blackboard Collaborate Ultra is software for virtual web classrooms. It is suitable for meetings, demonstrations web conferences, seminars, general training and support.
Bb-Ultra is a set of Perl bindings and entity definitions for the Collaborate REST services. These can be used to administer classrooms, including sessions, users and recordings.
DESCRIPTION
This Perl 5 module provides bindings to the the Collaborate (*) Services RESTful API. These support the CRUD and processing operations for the scheduling and access to HTML sessions.
These services are described in https://xx-csa.bbcollab.com/documentation.
Resource Classes
Each resource class is represented by a Perl 5 class:
- Context - Bb::Collaborate::Ultra::Context (see Context Documentation)
- Session - Bb::Collaborate::Ultra::Session (see Session Documentation)
- Recording - Bb::Collaborate::Ultra::Recording (see Recording Documentation)
- Session Logs - Bb::Collaborate::Ultra::Session::Log (see Session Documentation)
RESTful Services
The above classes are based on Bb::Collaborate::Ultra::DAO, which provides low level `post`, `get`, `patch` and `delete` methods. Where:
- `post` creates new entities on the server
- `get` is used to fetched entities, by `id` or various other criteria
- `patch` is used to update entities
- `delete` is used to delete items
Data Mapping
Some conversion is needed between JSON and Perl:
- - Boolean `true` and `false` are converted to 0 and 1
- - JSON date strings are converted to Unix numeric timestamps, rounded to the nearest second. For example, `2016-12-15T22:26:17.000Z` is converted to 1481840777.
These conversions are applied on data being sent or received from the Collaborate Ultra server.
Authentication
Authentication is via the OAuth 2.0 protocol, using the JWT Token Flow, as described in the documentation.
See Bb::Collaborate::Ultra::Connection for details.
SCRIPTS
bb-collab-session-log
Tjhis is a sample script to dump basic session logging for a completed session.
BUGS AND LIMITATIONS
- - This module does not yet fully implement resource types: Users, Enrollments or Courses
- - JWT Username-Password authentication is not yet supported.
COPYRIGHT & LICENSE
Copyright 2017 David Warring, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.