Ошибка обязательных данных javascript в api screenleap

У меня есть данные в кодировке json в переменной с именем $ json, это выглядит так:


    string(1243) "{"screenShareCode":"882919360",
    "appletHtml":"",
    "presenterParams":"aUsEN5gjxX/3NMrlIEGpk0=",
    "viewerUrl":"http://api.screenleap.com/v2/viewer/882919360?accountid=mynet",
    "origin":"API"}"
    }

мне нужно передать эти данные json в функцию javascript, см. ниже


    script type="text/javascript" src="http://api.screenleap.com/js/screenleap.js">/script>
    script type="text/javascript">
      window.onload = function() {
    var screenShareData = '?php echo $json;?>';
        screenleap.startSharing('DEFAULT', screenShareData);
      };
    /script>

когда я пытаюсь запустить этот код, я получаю сообщение об ошибке «отсутствуют обязательные данные для демонстрации экрана».
Как устранить эту ошибку?

i am following "https://www.screenleap.com/api/presenter"

person Neha    schedule 12.11.2013    source источник


Ответы (3)


Похоже, что $json - это строка, вам нужно передать объект json. Попробуйте следующее:

window.onload = function() {
    var screenShareData = '?php echo $json;?>';
        screenleap.startSharing('DEFAULT', JSON.parse(screenShareData));
};
person allisonh    schedule 12.11.2013

Вот как вы его реализуете на основе документации

https://www.screenleap.com/api/presenter

<?php

// Config
$authtoken = '';
$accountid = '';

// 1. Make CURL Request
$url = 'https://api.screenleap.com/v2/screen-shares';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('authtoken:<authtoken>'));
curl_setopt($ch, CURLOPT_POSTFIELDS, 'accountid=<accountid>');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
curl_close($ch);
$json = json_decode($data, true);

?>

<!-- 2. Launch the Presenter App -->
<script type="text/javascript" src="http://api.screenleap.com/js/screenleap.js"></script>
<script type="text/javascript">
    window.onload = function() {
        screenleap.startSharing('DEFAULT', JSON.parse('<?php echo $json; ?>'));
    };
</script>

Если это не сработает, вы должны сообщить об этом в screenleap.

person Latheesan    schedule 12.11.2013
comment
выдает ошибку "Ожидается}". $ json уже отформатирован в формате json. - person Neha; 12.11.2013
comment
я обновил свой ответ, попробуйте это. Я думал, что для screenleap требуется объект JSON, но похоже, что он принимает строку JSON. - person Latheesan; 12.11.2013
comment
дает ошибку javascript: отсутствуют обязательные данные о демонстрации экрана - person Neha; 13.11.2013
comment
Я обновил свой ответ полным кодом для реализации. попытайся. - person Latheesan; 13.11.2013
comment
привет, я пробовал, но это дает мне ошибку javascript, говорящую о незавершенной строковой константе. - person Neha; 13.11.2013

Вам нужно только фактически проанализировать JSON, если вы хотите получить доступ к значениям. В противном случае просто передайте данные ответа прямо в функцию startSharing, например:

<?php
$url = 'https://api.screenleap.com/v2/screen-shares';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('authtoken:<your authtoken>'));
curl_setopt($ch, CURLOPT_POSTFIELDS, 'accountid=<your accountid>');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$data = curl_exec($ch);
curl_close($ch);
$json = json_decode($data, true);
?>

<script type="text/javascript" src="http://api.screenleap.com/js/screenleap.js"></script>
<script type="text/javascript">
    window.onload = function() {
        screenleap.startSharing('DEFAULT', <?php echo $data; ?>);
    };
</script>

Если вы просто вставите свои собственные учетные записи и токены авторизации (без пробелов в начале), это должно сработать для вас.

person user2639587    schedule 14.11.2013