如何从谷歌地图API中分离原始评论和翻译评论评论

问题描述 投票:0回答:2

我的数据库中有很多谷歌访问令牌(超过 1k)。这些令牌属于 google-my-business 所有者,他们已通过 google 对我的应用程序进行了身份验证,并授予使用其令牌的权限。我想从所有这些帐户获取所有谷歌评论并将它们保存到我的数据库中。 但是当我收到评论时,我会以单个字符串的形式自动生成翻译。而且我想把原文和翻译分开单独保存。 评论有这种格式。

(Translated by Google) Awesome!
(Original) Круто!

通常,我只是用“(由 Google 翻译)”子字符串分割这个字符串。但这个解决方案不起作用,因为子字符串实际上是不同的,并且取决于用户的帐户语言设置。如果用户将语言设置为俄语,则该子字符串将类似于“(Переведено Google)”。 考虑到不同的语言设置,有没有办法将原始评论与翻译评论分开?

附注这个问题不是重复的,因为其他问题没有这个语言问题。

google-maps google-api google-my-business-api google-my-business
2个回答
0
投票

我找到了一个我真的不喜欢的解决方案,它有点矫枉过正,但这是我唯一想到的。 首先,我通过调用此端点https://developers.google.com/my-business/reference/rest/v4/accounts来获取用户的语言设置。 然后我通过谷歌翻译 API 将“(由 Google 翻译)”字符串翻译为该语言,然后按该字符串拆分评论评论。它有效,但如果你建议更好的东西,那就太棒了。


0
投票

您实际上可以在请求标头上设置

Accept-Language
,这样它们就不会被翻译为其帐户语言,而是保留为您认为是原始语言的语言。

例如,我使用自己的帐户进行身份验证,我的帐户语言设置为英语,但评论大多是西班牙语。为了避免在检索评论时翻译成英语,您可以通过以下方式将标题设置为首先接受西班牙语:

const resp = await oauth2Client.request({
  url: `https://mybusiness.googleapis.com/v4/${account.name}/${location.name}/reviews?pageSize=2`,
  headers: { 'Accept-Language': 'es, en;q=0.7' },
});
© www.soinside.com 2019 - 2024. All rights reserved.