1

我试图将寄存器从详细信息连接到 goto-webinar API。我得到了一些代码,如下所示,当我执行这段代码时,我得到了一些错误

<?php
$email = "n.manoj25@gmail.com";
$firstname = "manoj";
$lastname = "kumar";

class ApiClient {

private $oauthToken;

public function __construct($oauthToken) {
    $this->oauthToken = $oauthToken;
}

public function post($url, $data) {
    $data_string = json_encode($data);   

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);

    curl_setopt($ch, CURLOPT_TIMEOUT, '10');

    $headers = array(
            "Content-Type: application/json",
            "Accept: application/json",
            "Authorization: OAuth oauth_token={$this->oauthToken}",
            "Content-Length: " . strlen($data_string)
        );
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 

    $ret = curl_exec($ch);

    return json_decode($ret);
}

public function get($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, '10');

    $headers = array(
            "Content-Type: application/json",
            "Accept: application/json",
            "Authorization: OAuth oauth_token={$this->oauthToken}"
        );
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 

    $ret = curl_exec($ch);

    return json_decode($ret);
}

}

class Webinar {

private $developerKey;
private $organizerKey;
protected $client;
// ##########################
private $apps = array(
    'MMT' => array(
        'developerKey' => '155834115',
        'oauthToken' => '',
        'organizerKey' => '')
);

public function __construct($app = 'MMT') {
    if(!array_key_exists($app, $this->apps)) {
        throw new Exception('Invalid argument: unknown developer key');
    }
    $this->developerKey = $this->apps[$app]['developerKey'];
    $this->organizerKey = $this->apps[$app]['organizerKey'];
    $this->client = new ApiClient($this->apps[$app]['oauthToken']);
}


public function getUpcoming() {
    return $this->client->get("https://api.citrixonline.com/G2W/rest/organizers/{$this->organizerKey}/upcomingWebinars");
}

public function getHistorical() {
    return $this->client->get("https://api.citrixonline.com/G2W/rest/organizers/{$this->organizerKey}/historicalWebinars");
}

public function addRegistrant($webinarKey, $email, $firstname, $lastname) {
    $url = "https://api.citrixonline.com/G2W/rest/organizers/{$this->organizerKey}/webinars/{$webinarKey}/registrants";
    $data = (object) array(
        'firstName' => $firstname,
        'lastName' => $lastname,
        'email' => $email
    );
    return $this->client->post($url, $data);
}

}

 //****************************************************

 $api = new Webinar();
 print_r($api->addRegistrant);
?>

这是我得到的错误

注意:未定义的属性:C:\wamp\www\webinar_2\new_api.php 中的 Webinar::$addRegistrant 第 105 行

任何知道如何解决这个错误

4

2 回答 2

0

答案有点晚了,但是您正在尝试打印属性并且没有调用您定义的方法。这是一个 php 问题,而不是 citrix 问题。

于 2014-03-05T14:10:32.083 回答
0

我的回复也晚了,但经过一些黑客攻击后,我找到了一种非常简单的方法,可以通过 PHP 调用 CITRIX API 来注册新的 GotoWebinar 参加者

于 2015-03-16T18:41:37.677 回答