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

Twilio in chrome extension - user denied access to microphone

本文关键字:用户 拒绝访问 麦克风 Twilio 扩展      更新时间:2023-09-26

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

我通过下载 twilio 成功地包含了 twilio.js并将协议更改为"https"以便在后台使用.html chrome 扩展名。

清单.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**.

任何人都可以帮助我解决此错误吗?

我找到了一种在 chrome 扩展程序的背景页面中启用 twilio 的解决方法。

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

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

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

我是Twilio的开发者布道者。

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

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

我希望这有所帮助,如果我可以进一步提供帮助,请告诉我。

更新:

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

此问题的最高答案建议在扩展的选项页面中调用getUserMedia。否则,打开的Chrome上会出现一个错误,可以将这些权限添加到扩展程序。

最后,

我成功地以棘手的方式将麦克风与Chrome扩展程序一起使用,并带有一些错误消息,但Twilio功能仍然有效(标注和接听电话(。

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

  1. 特威利奥.js来自 https://static.twilio.com/libs/twiliojs/1.2/twilio.js
  2. 第二个库来自https://static.twilio.com/libs/twiliojs/refs/3716fe1/twilio.js(我把它命名为twilio-lib.js(

将这两个JS文件保存到您的项目中,并通过以下方式将其加载到清单中内容脚本:

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

然后编辑第一个 twilio.js;注释打算加载 lib 的 line62、line 66(第二个,twilio-lib.js,我们已经包含了它,所以它没用(

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

我也尝试在后台页面加载js,但即使我获得许可,麦克风也总是关闭。