Генерация токена

Привет всем, я работаю над приложением для Android для потоковой передачи живого видео. Я использую библиотеку Vidyo, и она хорошо работает с потоком. Но мне нужно сгенерировать токен для потока, который я не смог

try{
    Process su = Runtime.getRuntime().exec("generateToken.jar -- 
    key="+Developer_Key+" --appID="+APP_ID+" --userName=G.Salah -- 
    expiresInSecs=75000");
    DataOutputStream outputStream = new DataOutputStream(su.getOutputStream());
    StringBuffer output = null;
    BufferedReader reader=new BufferedReader(new 
    InputStreamReader(su.getInputStream()));
    String line="";
    while((line=reader.readLine())!=null){
        output.append(line+"\n");
    }
    String response=output.toString();
    AlertDialog.Builder dialog=new AlertDialog.Builder(this);
    dialog.setMessage(response);
    dialog.show();
    outputStream.writeBytes("exit");
    outputStream.flush();
}
catch (IOException e){
    AlertDialog.Builder dialog=new AlertDialog.Builder(this);
    dialog.setMessage(e+"");
    dialog.show();
}

Я загрузил файл generateToken.jar и поместил файл libs в студию Android. И попытался выполнить командную строку оболочки «generateToken.jar —

key="+Developer_Key+" --appID="+APP_ID+" --userName=G.Salah -- 
expiresInSecs=75000"

используя Process, но теперь он работает:/


person Salah Hadaydeh    schedule 05.05.2018    source источник
comment
Это сработало для вас?   -  person user    schedule 25.09.2019


Ответы (2)


Убедитесь, что вы передаете допустимые значения для параметров developerKey и ApplicationId. Также убедитесь, что имя пользователя не содержит специальных символов. Я только что попытался сгенерировать токен со своей учетной записью, и это сработало. Итак, .jar работает.

person voltar    schedule 31.05.2018

Токен Vidyo Io по коду приложения Java:

public class Vidyo {

    private static final String Developer_Key = "??????";
    private static final String APP_ID = "?????.vidyo.io ";

    public static void main(String args[]) {
        try{
            Process su = Runtime.getRuntime().exec("C:\\Users\\Kamal\\Desktop\\Vidyo Io\\"+"generateToken.jar -- key="+Developer_Key+" --appID="+APP_ID+" --userName=Kamal -- expiresInSecs=75000");
            DataOutputStream outputStream = new DataOutputStream(su.getOutputStream());
            StringBuffer output = null;
            BufferedReader reader = new BufferedReader(new InputStreamReader(su.getInputStream()));
            String line = "";
            while((line = reader.readLine()) != null){
                output.append(line+"\n");
            }
            String response = output.toString();
            System.out.println(response);
            outputStream.writeBytes("exit");
            outputStream.flush();
        }
        catch (IOException e){
            System.err.println(e);
        }
    }

}

ИЛИ Токен Vidyo Io от Firebase Cloud Function:

const functions = require('firebase-functions');

// Create and Deploy Your First Cloud Functions
// https://firebase.google.com/docs/functions/write-firebase-functions
// https://vidyo.io/blog/create-group-video-conferencing-application-using-webrtc-node-js-and-vidyo-io/

const jsSHA = require('jssha');
const btoa = require('btoa');

let applicationId = "YOUR_VIDYO_APPLICATION_ID.vidyo.io";
let developerKey = "YOUR_VIDYO_DEVELOPER_KEY";

exports.getVidyoToken = functions.https.onRequest((req, res) => {

    function getRandomInt() {
        return Math.floor(Math.random() * Math.floor(9999));
    }

    function generateToken(expiresInSeconds) {
        var EPOCH_SECONDS = 62167219200;
        var expires = Math.floor(Date.now() / 1000) + expiresInSeconds + EPOCH_SECONDS;
        var shaObj = new jsSHA("SHA-384", "TEXT");
        shaObj.setHMACKey(developerKey, "TEXT");
        jid = "demoUser" + getRandomInt() + '@' + applicationId;
        var body = 'provision' + '\x00' + jid + '\x00' + expires + '\x00';
        shaObj.update(body);
        var mac = shaObj.getHMAC("HEX");
        var serialized = body + '\0' + mac;
        return btoa(serialized);
    }

    let thirtyMinutes = 30 * 60;
    //let response = JSON.stringify({token: generateToken(thirtyMinutes)});
    //res.send(response);

    res.statusCode = 200;
    res.setHeader('Content-Type', 'application/json');
    res.end(JSON.stringify({token: generateToken(thirtyMinutes)}));

}, err => {
    console.error(err.stack);
    res.status(500).send('Unexpected error.');
});
person Mustofa Kamal    schedule 16.11.2019