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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

852閲覧

デプロイするとAPIが読み込まれない

mamiduka

総合スコア11

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2020/07/17 13:47

編集2020/07/17 14:34

初めまして。
いつもありがとうございます。

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

miyabi_takatsuk

2020/07/17 14:01

> APIキーを叩くと 何をどう叩いているんでしょうか? 該当箇所のソースコードを提示いただかないと、回答は得られないと思います。 また、デプロイ前にローカルで動作確認する環境にて、動作確認は行ってなかったのですか?
guest

回答1

0

ベストアンサー

heroku なら、Configuration and Config Vars にあるように heroku cli で環境変数を設定してみてください。

heroku config:set API_KEY=value

投稿2020/07/17 23:00

編集2020/07/17 23:00
CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mamiduka

2020/07/18 00:06

ありがとうございます! 設定できました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問