【问题标题】:Google Group Migration API - gives com.google.gaia.client.invaliduseridexceptionGoogle Group Migration API - 提供 com.google.gaia.client.invaliduseridexception
【发布时间】:2016-12-16 05:36:40
【问题描述】:

我正在尝试在 Python 中为 Group Migration API 运行快速入门。

目标是向我为测试创建的 Google 群组插入一条消息。

我创建了一个 Google for Work 帐户,并创建了一个归管理员所有的 Google 群组。

我在控制台中将凭据创建为“其他人的客户端 ID”,并在我的客户端上进行了设置。

当我运行脚本时,我得到:

googleapiclient.errors.HttpError:
<HttpError 400 when requesting
https://www.googleapis.com/upload/groups/v1/groups/test-migration-business%40googlegroups.com/archive?uploadType=media&alt=json
returned "com.google.gaia.client.InvalidUserIDException:
Request for GaiaClientConst::INVALID_USERID">

授权流程似乎运行良好。我在浏览器选项卡中得到确认。它在我的本地目录中创建凭据文件。

我授权为 Google for Work 帐户的管理员用户。我在 admin.google.com 控制台中启用了 API 访问。我也完成了先决条件步骤,我认为一切都设置好了。

知道是什么原因造成的吗?

编辑:我通过另一个渠道获得了更多信息。问题出在我尝试通过 API 发帖的群组。

这不仅仅是在 Google Groups for Business 帐户下创建群组。您必须在 admin.google.com 面板中进行大量设置。最终,当您正确设置时,您可以创建一个组,其电子邮件地址的类型为:groupname@owndomain.com。

只要它使用电子邮件地址中的@googlegroups.com 后缀创建您的群组,API 调用就不起作用。

我会在几天后写一个替代答案,一旦我探索了使用 SMTP 电子邮件添加来做到这一点。

【问题讨论】:

  • 另外,如果我查看控制台的 API 屏幕,它仍然显示没有流量。它似乎可以解决组名 - 我知道这一点,因为如果我给它一个垃圾字符串作为组名,它会产生一个不同的错误(后端错误)。

标签: google-admin-sdk google-oauth


【解决方案1】:

这可能是由 INVALID MESSAGE FAILURE 引起的 - 电子邮件的格式无效。如果邮件因格式错误而被拒绝,您将收到 400 Bad Request HTTP 状态代码。无效格式示例包括:

  • 邮件可能缺少 From、To 和 Date 字段。
  • 如果message 中的行没有被 CR+LF(即“\r\n”)样式的换行符终止,则会发生错误。
  • 电子邮件为空。
  • 迁移的目标组不存在或处于“只读”模式。有关只读共享模式的详细信息,请参阅 Google Groups for Business sharing options

也可能是 UNSUPPORTED_PARALLEL_OPERATION — API 不支持将并行消息插入到同一组存档中。此版本的 API 也不支持批处理请求。但该 API 支持将电子邮件插入不同组档案的并行请求。返回 400 HTTP 状态码。

仔细检查申请表和Managing Email Migrations 以查看迁移的重要说明。

希望这会有所帮助!

【讨论】:

  • 感谢您对我的问题感兴趣,非常感谢。事实证明,这与我试图发布到的组的配置有关 - 我添加了一些信息作为对问题的编辑。一旦我想出了一个完整的解决方案,我会添加我自己的答案。
【解决方案2】:

问题出在我试图通过 API 向其发帖的群组。

这不仅仅是在 Google Groups for Business 帐户下创建群组。您必须在 admin.google.com 面板中进行大量设置。最终,当您正确设置时,您可以创建一个组,其电子邮件地址的类型为:groupname@owndomain.com。

只要它使用电子邮件地址中的@googlegroups.com 后缀创建您的群组,API 调用就不起作用。

我按照以下链接使用 SMTP 发布到公共组: https://github.com/jmuhlich/mailman-archive-migration https://gist.github.com/tdonohue/cd2a643c5fca5f140cfd

我在使用 SMTP 方法时遇到了一些困难,最终放弃了它。

a) 您需要按时间顺序加载消息,因为它们会在您添加它们时以当前日期/时间发布。如果电子邮件作为垃圾邮件被保留在审核队列中并稍后获得批准,他们可能会出现故障。

b) 现在对 Google 的 SMTP 中继的限制非常低,除非您拥有一个拥有大量订阅用户的高额 Google Apps 帐户。 SMTP 中继服务变得很重要,这样您的存档邮件就不会在进入群组的过程中被标记为垃圾邮件。

我已经回到 API 解决方案,并且几乎完成了它。让字符集的编码在所有情况下都能正常工作需要一些时间。但除此之外它运作良好。

【讨论】:

    猜你喜欢
    • 2012-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多