Saya ingin membuat token akses di backend dan harus melewati ujung depan untuk terhubung ke ruang obrolan video.

Ini adalah kode back-end saya

const twilioAccountSid = process.env.twilioAccountSid;
const twilioApiKey = process.env.twilioApiKey;
const twilioApiSecret = process.env.twilioApiSecret;

const room = "cool room";

app.post("/access-token", (req, res) => {
  try {
    console.log(
      "sid",
      twilioAccountSid,
      "key",
      twilioApiKey,
      "secret",
      twilioApiSecret
    );
    const identity = "user";

    // Create Video Grant
    const videoGrant = new VideoGrant({
      room,
    });

    // Create an access token which we will sign and return to the client,
    // containing the grant we just created
    const token = new AccessToken(
      twilioAccountSid,
      twilioApiKey,
      twilioApiSecret,
      { identity: identity }
    );
    token.addGrant(videoGrant);

    // Serialize the token to a JWT string
    console.log(token.toJwt());
    res.status(200).json(token.toJwt());
  } catch (error) {
    console.warn(error);
    res.sendStatus(500);
  }
});

Untuk SID akun Twilio saya menggunakan SID dashboard saya yang dimulai dari AC Untuk kunci API saya menambahkan nama ramah yang saya berikan ke kunci API ketika saya membuatnya. Rahasia API adalah id rahasia kunci API itu.

Token berhasil dibuat dan diteruskan ke front-end.

Ini adalah kode front-end saya

const connectRoom = async () => {
  try {
    const token = await axios.post("http://localhost:5000/access-token");

    connect(token.data, { name: roomName, video: { width: 640 } }).then(
      (room) => {
        console.log(`Successfully joined a Room: ${room}`);
        room.on("participantConnected", (participant) => {
          console.log(`A remote Participant connected: ${participant}`);
          participant.tracks.forEach((publication) => {
            console.log("for each");
            if (publication.isSubscribed) {
              const track = publication.track;
              document
                .getElementById("remote-media-div")
                .appendChild(track.attach());
            }
          });
          participant.on("trackSubscribed", (track) => {
            document
              .getElementById("remote-media-div")
              .appendChild(track.attach());
          });
        });
      },
      (error) => {
        console.error(`Unable to connect to Room: ${error.message}`);
      }
    );
  } catch (error) {
    console.log(error);
  }

Lalu saya mendapatkan kesalahan ini

Tidak dapat terhubung ke Kamar: Penerbit/subjek Token Akses Tidak Valid

Bagaimana cara mengatasi masalah ini?

Bantuan apa pun! Terima kasih sebelumnya

0
Pathum Kalhan 20 November 2020, 12:24

1 menjawab

Jawaban Terbaik

Anda dapat membuat Kunci API di sini (atau melalui Konsol). Perhatikan, Kunci API dimulai dengan SK....

REST API: Kunci API

1
Alan 20 November 2020, 13:39