【发布时间】:2014-02-08 06:45:31
【问题描述】:
背景
我有许多用于 SiriProxy 的 Ruby 插件,我自己编写或使用其他人对我的家进行语音控制 (https://github.com/elvisimprsntr?tab=repositories)。 SiriProxy 基本上是一个 MITM 代理,它允许将您自己的操作和响应插入到 Siri 协议中。不幸的是,Apple 对 Siri 协议进行了一些广泛的更改,这破坏了 iOS 7 中的 SiriProxy。iOS 7 中的 Siri 使用 MPTCP、新的 ACE 协议和可能的不同证书。我们未能成功让 SiriProxy 与 iOS 7 一起工作。(https://github.com/plamoni/SiriProxy/issues/542)
SIRI 的替代品
由于 Apple 极不可能在 iOS 上为 Siri 或 AutoVoice 和 Tasker 等自动化应用程序发布公共 API,我认为替代方案是使用适用于 iOS 和 Android 的 Google 语音搜索应用程序,这有很多优点:
- 在设备上执行语音转文本。
- 不使用 MPTCP、HTTPS 或需要登录
- 谷歌语音搜索只是构建一个 HTTP GET 谷歌搜索查询 URL。在某些情况下,应用会说出响应。
- 我认为谷歌搜索使用 cookie,但不确定这是否重要。
要求
我已经阅读了许多帖子、论坛等,以寻找解决此问题的最佳方法,但不幸的是,似乎有很多方法可以解决此问题。
- 必须在 Ruby 中实现,以最大限度地重用现有的 SiriProxy 插件。
- 一个代理,可以让我解析搜索查询中关键字的 URL。
- 当关键字不匹配时,允许我简单地传递 google 查询的结果。
- 允许我用我自己的回复替换谷歌搜索结果。
问题
我在哪里开始苦苦挣扎。我不可能是第一个在 Ruby 中需要类似代理的人。欢迎大家提出意见。
更新:参考帖子
Help with HTTP Intercepting Proxy in Ruby?
accessing a website through a proxy using Net::HTTP proxy in ruby
Ruby Eventmachine & HTTP requests via proxy
How to create proxy server in ruby that accepts HTTPS
Ruby MITM proxy
【问题讨论】:
-
您能分享一下您在研究时遇到的帖子吗?它可能有助于提出策略。谢谢。
-
添加了一些我读过的链接。我还在 github 上查看了一些 repos。