镀铬扩展中的Twilio - 用户拒绝访问麦克风

时间:2014-12-05 07:01:37

标签: javascript google-chrome-extension twilio

我是Chrome扩展程序的新手。是否有可能通过手动(javascript)或使用清单配置为chrome扩展提供麦克风访问权限。

我通过下载twilio.js成功包含了twilio,并将协议更改为" https"用于在chrome.html的background.html中使用。

Manifest.js字段如下:

 "permissions":["http://*/*", "https://*/*", "*://mail.google.com/*", "storage", "unlimitedStorage", "contextMenus", "cookies", "tabs", "notifications", "activeTab", "background","identity", "*://*.twilio.com/*"],

"content_security_policy": "script-src 'self' 'unsafe-eval' https://apis.google.com https://*.twilio.com; object-src 'self' https://*.twilio.com",

现在,当使用twilio进行扩展/接收呼叫并接受连接时。它从Twilio.Device.error方法抛出错误如下

   error.message is **User denied access to microphone**.

有人可以帮我解决这个错误吗?

3 个答案:

答案 0 :(得分:3)

我找到了一种解决方法,可以在chrome扩展程序的后台页面中启用twilio。

第一次,当我们将扩展程序安装到chrome app时。只需从扩展目录创建一个带有虚拟html的新选项卡,如下面的代码片段,然后进行测试调用。

    chrome.tabs.create({'url': chrome.extension.getURL('/telephony.html')}, function(tab) {
        console.debug("Telephony Tab details are - ",tab);
    });

它将提示用户进行麦克风访问并提供允许权限。呼叫连接后,向背景页面发送消息并在后台设置Twilio。下次您可以在后台接听电话时形成。

答案 1 :(得分:1)

我是Twilio的开发人员传播者。

我还没有在使用Twilio Client的Chrome扩展程序中尝试任何操作,但我查看了权限。在我看来,您需要包含audioCapture权限才能通过getUserMedia访问麦克风,这是客户使用的。

我在这里查找可用的权限:https://developer.chrome.com/apps/declare_permissions

我希望有所帮助,请告诉我是否可以继续提供帮助。

更新:

如上所述,这是Chrome打包应用的页面,而不是扩展程序。

The top answer to this question建议在扩展程序的选项页面中调用getUserMedia。否则,有一个bug on Chrome open to add these permissions to extensions

答案 2 :(得分:0)

最后,我成功地使用Chrome扩展程序以及一些错误信息,但Twilio功能仍然有效(标注和接收电话)。

这是我的经验,由于Twilio js库会加载外部库哪个chrome扩展名不允许,所以我手动下载了两个库

  1. 来自https://static.twilio.com/libs/twiliojs/1.2/twilio.js
  2. 的Twilio.js
  3. 来自的第二个lib https://static.twilio.com/libs/twiliojs/refs/3716fe1/twilio.js (我把它命名为twilio-lib.js)
  4. 将这两个js文件保存到您的项目中并将其加载到manifest中 contentscript:

    "content_scripts": [
        {
          ****
          "js": [...,"lib/twilio.js","lib/twilio-lib.js",...],
          ***
        }
      ],
    

    然后编辑第一个twilio.js; 评论打算加载lib的第62行,第66行(第二个,twilio-lib.js,我们已经包含它,所以没用)

    然后你可以在chrome扩展中使用Twilio.Device对象, 它会显示许多.mp3未找到的消息,但不会阻止您使用Twilio客户端功能

    我还尝试在后台页面加载js,但即使我获得了许可,麦克风也会一直关闭。