初めまして。
いつもありがとうございます。
railsを勉強し初めて約2ヶ月が経ち、本日初めてデプロイまですることができました。
ただ、デプロイしてみたアプリの動作確認を行っていたのですがAPIを使って実装した部分がうまく動作できなくて解決できないのでみなさんのお力を貸していただけたらと思い、質問させていただきます。
よろしくお願いします
私は、ビデオ通話機能をSky Way
のAPIを使って実装したのですが、その部分が動作しません。
ローカルの環境ではきちんと動作していました。
APIキーを叩くと
API key "null" is invalid.
とアラートが出てきます。
おそらくAPIキーの格納場所が違うと思うのですがどこにどのように格納すれば良いのかわかりません。
よろしくお願いします。
追記
用語が分からず的外れな追記であればおっしゃってください、申し訳ございません。
作成したアプリです
↑適当に新規登録をしていただき、こちらに入っていただきますとサイトの下部にビデオ通話が開始するボタンがあります。
コンソールでエラーが出ていますので確認をしていただきたいです。申し訳ありません。
javascript
1 document.getElementById("call-media-contents").style.display ="none"; 2 document.getElementById("before-call").addEventListener("click", function() { 3 alert("カメラがオンになります"); 4 alert("IDが発行されます。相手に教えることでビデオ通話ができます"); 5 const contents = document.getElementById("call-media-contents"); 6 const button = document.getElementById("before-call-contents"); 7 if(contents.style.display=="block"){ 8 contents.style.display ="none"; 9 button.style.display ="block"; 10 }else{ 11 contents.style.display ="block"; 12 button.style.display ="none"; 13 } 14 15 let localStream; 16 17 navigator.mediaDevices.getUserMedia({video: true, audio: true}) 18 .then( stream => { 19 const videoElm = document.getElementById('my-video') 20 videoElm.srcObject = stream; 21 videoElm.play(); 22 localStream = stream; 23 }).catch( error => { 24 console.error('mediaDevice.getUserMedia() error:', error); 25 return; 26 }); 27 28 const peer = new Peer({ 29 key: gon.api_key, 30 debug: 3 31 }); 32 peer.on('open', () => { 33 document.getElementById('my-id').textContent = peer.id; 34 }); 35 peer.on('error', err => { 36 alert(err.message); 37 }); 38 peer.on('close', () => { 39 alert('通信が切断しました。'); 40 }); 41 42 document.getElementById('make-call').onclick = () => { 43 const theirID = document.getElementById('their-id').value; 44 const mediaConnection = peer.call(theirID, localStream); 45 setEventListener(mediaConnection); 46 }; 47 48 document.getElementById('stop-button').addEventListener("click", function() { 49 location.reload(); 50 }); 51 52 const setEventListener = mediaConnection => { 53 mediaConnection.on('stream', stream => { 54 const videoElm = document.getElementById('their-video') 55 videoElm.srcObject = stream; 56 videoElm.play(); 57 }); 58 } 59 peer.on('call', mediaConnection => { 60 mediaConnection.answer(localStream); 61 setEventListener(mediaConnection); 62 }); 63 });
上記のコードの真ん中あたりの
const peer = new Peer({ key: gon.api_key, debug: 3 });
これがビデオ通話するときに必要なAPIキーを記述しているところです。
ローカル環境では.envファイルにAPIキーを記述しており、ローカル環境ではきちんと動作しました。
デプロイはherokuで行っております。
APIキーの格納方法
gem 'dotenv-rails' gem 'gon'
def show gon.api_key = ENV['API_KEY']
env
1API_KEY =xxxxxxxxxxxxxxxxxx
回答1件
あなたの回答
tips
プレビュー