Open choyri opened 4 years ago
经过排查发现这个 Cookie 是 Google 加上的,用来作为用户身份唯一标识符:https://stackoverflow.com/questions/51348078/google-nid-cookie
google.cn 域名目前应该做了防滥用限制,导致无法获取到 token 值,google.com 则没有这个限制。
临时解决方案:先使用一次 google.com 翻译,获取到 token 值之后再切回 google.cn 使用。
https://github.com/roojay520/bobplugin-google-translate/issues/3#issue-735906054
@roojay520 google.com 也是带 Cookie 的,同样的错误,抓包 如图。 通过断点删掉 Request 中的旧 Cookie,现在获取到新的 Cookie,终于可以继续用一段时间了 😢
@choyri 我刚才测试 google.com 的可以,google.cn 的不可以,按照你的测试有可能是 google 近期加强了反爬策略
@roojay520 我觉得不管是 com 还是 cn,一直都有 NID 的 Cookie,不过现在因为某些原因,导致它「过期」了,从而无法返回标准的结果。
同无法解决问题
@liwuxi @choyri 我尝试直接在 header cookie 中加了一个 NID 貌似能用了,目前需要更多测试 https://github.com/roojay520/bobplugin-google-translate/releases/tag/v0.3.3
@roojay520 我看了下你的 改动,好像有点「暴力」 😅 假设 NID 的值会到期,或者被拉黑,那么插件必须更新才可以继续使用了。 我试着给 Cookie 赋空值,也是可以的,这应该比赋非空固定值好一点。 后续继续观察 🤪
本 Issue 的 Label 应该改成 enhancement(但是我没权限,无法操作)。 是否需要提供清理 Cookie 的接口,仍需观察。
@choyri 已修改为 enhancement。
@roojay520 Cookie 这个问题跟 Bob 有关系吗?需要调整不?
@ripperhe 最开始 bobplugin-google-translate 请求谷歌翻译的接口是不处理 Cookie 的,自动接收和发送字段名为 NID 的 Cookie;后该值因未知原因(到期或其他)失效,导致插件报错失效。 于是我提了这个 Issue,希望 Bob 提供处理 Cookie 的接口,比如清理 Cookie。(尝试手动清理,插件恢复正常) 后 bobplugin-google-translate 更新,写死了 Cookie;安心用了一个月,一直到前几天,插件再次报错失效。 今天我研究了一下,发现谷歌翻译更新了,出现了新的问题(等待适配),和之前的 Cookie 问题并不重合。 因此,@ripperhe 可以综合其他的反馈建议,看是否为 Bob 提供清理 Cookie 的接口。
@choyri 好的,了解了。🤝 请问一下你是如何「手动清理」Cookie 的?
@choyri 😅 好的,看到了
运行环境
描述问题
使用 谷歌翻译插件 的时候,近期发现一直出现错误提示「服务异常: 秘钥获取失败」。
在阅读代码后,发现错误是 这里 抛出的,在其上边使用了
$http.get
进行请求。接着抓包,发现请求的时候,带了一个 Cookie,如图。
然后,使用 Paw 测试,不带 Cookie 时请求,谷歌会返回这个 key 的 Cookie,且返回的 body 中带有插件代码中所用到的
tkk
;如果手动配置抓包得到的那个 Cookie,返回内容中是没有tkk
的,因此,谷歌翻译插件一直报错。这个
$http
接口是 Bob 本体提供的,所以特来此请求作者帮助。/cc @roojay520