質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.48%

  • PHP

    20910questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • Ruby on Rails

    7513questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • Twilio

    24questions

    Twilioは電話・SMS・ビデオ・チャット・SNS連携等、様々なコミュニケーションチャネルの融合を可能とするクラウドコミュニケーションAPIサービスです。 従来は大規模な設備投資が必要だった電話と連携したシステムも、汎用的な開発言語で容易に開発が可能となり、 様々なコミュニケーションチャネルを活用したシステム構築が可能となります。

twilioのvideo通話について

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 654

rails_fan

score 18

いつも皆様にお世話になっております。
ただいま、twilioのビデオ通話について試しています。

環境
ローカルに立てたlinuxサーバー
言語:ruby,javascript
フレームワーク:rails

Quickstartを元に以下の形で書いてみました。
【クライアント側】

var conversationsClient;
var activeConversation;
var previewMedia;
var identity;

// Check for WebRTC
if (!navigator.webkitGetUserMedia && !navigator.mozGetUserMedia) {
    alert('WebRTC is not available in your browser.');
}

$.getJSON('/token', function(data) {
  console.log(data.token);
  var token = data.token;

  var accessManager = new Twilio.AccessManager(token);
  conversationsClient = new Twilio.Conversations.Client(accessManager);
  conversationsClient.listen().then(clientConnected, function (error) {
    log('Could not connect to Twilio: ' + error.message);
  });
});

// Successfully connected!
function clientConnected() {
    document.getElementById('invite-controls').style.display = 'block';
    log("Connected to Twilio. Listening for incoming Invites as '" + conversationsClient.identity + "'");

    conversationsClient.on('invite', function (invite) {
        log('Incoming invite from: ' + invite.from);
        invite.accept().then(conversationStarted);
    });

    // Bind button to create conversation
    document.getElementById('button-invite').onclick = function () {
      var inviteTo = document.getElementById('invite-to').value;
      if (activeConversation) {
        // Add a participant
        activeConversation.invite(inviteTo);
      } else {
        // Create a conversation
        var options = {};
        if (previewMedia) {
            options.localMedia = previewMedia;
        }
        conversationsClient.inviteToConversation(inviteTo, options).then(conversationStarted, function (error) {
          log('Unable to create conversation');
          console.error('Unable to create conversation', error);
        });
      }
    };
}


【サーバー側】

def token
    identity = "user"
    # Create an Access Token for Video usage
    token = Twilio::Util::AccessToken.new <ACCOUNT_SID>,
    <API_KEY>, <API_SECRET>, 3600, "user"

    # Grant access to Conversations
    grant = Twilio::Util::AccessToken::ConversationsGrant.new
    grant.configuration_profile_sid = <CONFIG_SID>
    token.add_grant grant

    # Generate the token and send to client
    render json: {identity: identity, token: token.to_jwt}
end


この時,ウェブ側で見ると「Could not connect to Twilio: Gateway responded with: 31201 Authentication failed...」となってしまい接続することができません。上記の内容からTokenに問題があると思い試しに公式のテスターを使いそこで吐き出されたトークンを使用することで接続が可能でした。

【原因】
以上のことから、サーバー側で出力しているTokenの値が正しくないものを出力されているということはわかるのですが、なぜそのようなことになるのかがわかりません。

【求めているアドバイス】
上記の内容で疑わしい部分などありましたらご指摘いただければと思います。また不足している情報などありましたらそちらについてもご指摘いただければ捕捉、追記致します。

以上、どうぞ宜しくお願い致します。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

まだ回答がついていません

関連した質問

同じタグがついた質問を見る

  • PHP

    20910questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • Ruby on Rails

    7513questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • Twilio

    24questions

    Twilioは電話・SMS・ビデオ・チャット・SNS連携等、様々なコミュニケーションチャネルの融合を可能とするクラウドコミュニケーションAPIサービスです。 従来は大規模な設備投資が必要だった電話と連携したシステムも、汎用的な開発言語で容易に開発が可能となり、 様々なコミュニケーションチャネルを活用したシステム構築が可能となります。