tspesh/citrix 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

tspesh/citrix

Composer 安装命令:

composer require tspesh/citrix

包简介

PHP wrapper around Citrix - GoToMeeting and GoToWebinar APIs. Forked from teodortalov/citrix.

README 文档

README

Install via Composer

require "tspesh/citrix: *"

Authenticate and Get Going in 15 seconds

All you need in order to authenticate with Citrix's API is a consumer key, which you can obtain by registering at Citrix Developer Center. After registering and adding your application, you will be given Consumer Key, Consumer Secret, and Callback URL. You need the Consumer Key in order for your application to authenticate with Citrix using this library.

Direct Authentication

In addition to the Consumer Key, for Direct Authentication you need your username and password, which is the one that you use to login into GoToWebinar.com.

You can authenticate to Citrix, and your GoToWebinar account respectively, like so:

$client = new \Citrix\Authentication\Direct('CONSUMER_KEY');
$client->auth('USERNAME', 'PASSWORD'); 

Generally, the things you need the most are the access_token and organizer_key. You can retrieve those like this:

$client->getAccessToken(); //returns your access token
$client->getOrganizerKey(); //returns the organizer key

The code will handle all the authentication stuff for you, so you don't really have to worry about that.

Getting upcoming webinars

In order to get all the upcoming webinars, you have to do this:

$goToWebinar = new \Citrix\GoToWebinar($client); //@see $client definition above 
$webinars = $goToWebinar->getUpcoming();
var_dump($webinars); //this gives you all upcoming webinars

Getting past webinars

In order to get all the past webinars, you have to do this:

$goToWebinar = new \Citrix\GoToWebinar($client); //@see $client definition above 
$webinars = $goToWebinar->getPast();
var_dump($webinars); //this gives you all upcoming webinars

If you would like to get the registration/join URL for a webinar you can do so like this:

$webinar = reset($webinars);
$webinar->getRegistrationUrl(); //https://attendee.gotowebinar.com/register/456905497806

Register a user for a webinar

You can really easily register somebody for a webinar. Basically, all you need to do is this:

$data = array('email' => 'joe.smith@gmail.com', 'firstName' => 'Joe', 'lastName' => 'Smith');
$consumer = new \Citrix\Entity\Consumer($client);
$consumer->setData($data)->populate();

//register a user for the very first upcoming webinar, @see Getting upcoming webinars
$webinar = reset($webinars);
$webinar->registerConsumer($consumer);

As mentioned above $client you can get from Authenticate and Get Going in 15 seconds section, and $webinar you can get from Getting upcoming webinars section.

Alternatively, you can register a user for a webinar by providing the webinarKey and the user data directly to the GoToWebinar class like so:

$webinarKey = 123123;
$registrantData = array('email' => 'joe.smith@gmail.com', 'firstName' => 'Joe', 'lastName' => 'Smith');

$goToWebinar = new \Citrix\GoToWebinar($client); //@see $client definition above
$goToWebinar->register($webinarKey, $registrantData);

Error handling

The code does handle errors but it fails silently. You can check for errors like so:

$data = array('email' => 'joe.smith@gmail.com', 'firstName' => 'Joe', 'lastName' => 'Smith');
$consumer = new \Citrix\Entity\Consumer($client);
$consumer->setData($data)->populate();

//register a user for the very first upcoming webinar, @see Getting upcoming webinars
$webinar = reset($webinars);
$registration = $webinar->registerConsumer($consumer);

if($registration->hasErrors()){
   //get the first error that occurred and use it as the exception message
   throw new \Exception($registration->getError());
}
   
//no errors, continue...
die('Registration was successful.');

You can also display/get all errors like so:

$registration->getErrors();

Also you can push new errors like so:

$registration->addError('Something went wrong!!!');

Error handling should be available everywhere, so you should always be able to call hasErrors() and check for errors.

Contributions - Fork, Fork, Fork

If you would like to help maintain this project and/or if you have any questions or comments about the library's design or implementation I'd love to hear from you.

What's coming?

More stuff, first and foremoest in-like documentation, so your IDE works. Unit testing, and more from Citrix API.

统计信息

  • 总下载量: 664
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 30
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-05-21

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固