Skip to content

A Laravel wrapper for the WebinarJam API.

Notifications You must be signed in to change notification settings

ciaranpflanagan/WebinarJamApi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

WebinarJam Composer Package

A composer package that makes it easier to communicate with the WebinarJam API.

Installation

composer require ciaranpflanagan/webinarjam-api

Add the service provider to your config/app.php providers array

ciaranpflanagan\WebinarJamApi\WebinarJamServiceProvider::class

Usage

Include the package so it can be used

use ciaranpflanagan\WebinarJamApi\WebinarJam;

Create a new instance of the WebinarJam class, passing in your WebinarJam API key. More can be found on obtaining your API key in the WebinarJam API Documentation.

$webinar = new WebinarJam('WEBINARJAM_API_KEY');

List All Webinars

To get a full list of webinars. This returns an array with the response from the API.

$webinar->webinars();

Output

{
    "status": "success",
    "webinars": [
        {
            "webinar_id": 1,
            "webinar_hash": "gfdsg765g",
            "name": "First Webinar",
            "description": "First Webinar From API",
            "type": "Series of presentations",
            "schedules": [
                "Every day, 9:00 AM"
            ],
            "timezone": "Europe\/Dublin"
        },
        {
            "webinar_id": 2,
            "webinar_hash": "gfdsg765g",
            "name": "Second Webinar",
            "description": "Second Webinar From API",
            "type": "Series of presentations",
            "schedules": [
                "Every day, 9:00 AM"
            ],
            "timezone": "Europe\/Dublin"
        }
    ]
}

Details About An Individual Webinar

To get details about one individual webinar (including it's schedules). This returns an array with the response from the API.

/**
 * @param int $webinar_id
 */
$webinar->webinarDetails($webinar_id);

Output

{
    "status": "success",
    "webinar": {
        "webinar_id": 1,
        "webinar_hash": "gfdsg765g",
        "name": "First Webinar",
        "description": "First Webinar From API",
        "type": "Series of presentations",
        "schedules": [
            {
                "date": "2021-03-25 09:00",
                "schedule": 99,
                "comment": "Every day, 9:00 AM"
            }
        ],
        "timezone": "Europe\/Dublin",
        "presenters": [
            {
                "name": "Ciaran Flanagan",
                "email": "[email protected]",
                "picture": ""
            }
        ],
        "registration_url": "",
        "registration_type": "free",
        "registration_fee": 0,
        "registration_currency": "",
        "registration_checkout_url": "",
        "registration_post_payment_url": "",
        "direct_live_room_url": "",
        "direct_replay_room_url": ""
    }
}

Register A Person To A Webinar

To register a person to a webinar. This returns an array with the response from the API.
Note: $webinar_id and $schedule are of type int.

/**
 * @param int $webinar_id
 * @param array $details
 */
$details = array(
    "first_name" => "",
    "last_name" => "", // Optional
    "email" => "",
    "schedule" => 0,
    "ip_address" => "", // Optional
    "phone_country_code" => "", // Optional
    "phone" => "", // Optional
);

$webinar->register($webinar_id, $details);

Output

{
    "status": "success",
    "user": {
        "webinar_id": 1,
        "webinar_hash": "gfdsg765g",
        "user_id": 1234,
        "first_name": "Ciaran",
        "last_name": "Flanagan",
        "phone_country_code": "+353",
        "phone": "123456789",
        "email": "[email protected]",
        "password": null,
        "schedule": "99",
        "date": "2021-03-25 9:00",
        "timezone": "Europe\/Dublin",
        "live_room_url": "",
        "replay_room_url": "",
        "thank_you_url": ""
    }
}

Get A Webinar's Schedule

To get a webinars schedule. This returns an array with the response from the API.

/**
 * @param int $webinar_id
 */
$webinar->webinarSchedule($webinar_id);

// or
$webinar->webinarDetails($webinar_id);
$webinar->webinarSchedule();

NOTE: If ->webinarDetails($webinar_id) is has already been called, ->webinarSchedule() can be called with no parameters and it will get the schedule using the same webinar ID used in ->webinarDetails($webinar_id).

Output

[
    [
        "date" => "2021-03-25 09:00",
        "schedule" => 99,
        "comment" => "Every day, 9:00 AM",
    ],
    [
        "date" => "2021-03-52 09:00",
        "schedule" => 99,
        "comment" => "Every day, 9:00 AM",
    ],
]