Google 组迁移 API - 给出 com.google.gaia.client.invaliduseridexception

Google Group Migration API - gives com.google.gaia.client.invaliduseridexception

我正在尝试 运行 Python 中的快速入门以进行组迁移 API。

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

我为工作帐户创建了一个 Google,并创建了一个归管理员所有的 Google 组。

我在控制台中创建了凭据 "Client ID for Other" 并在我的客户端上进行了设置。

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

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.

post 的组

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

的组

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

我会在几天内尝试使用 SMTP 电子邮件添加替代答案后写一个替代答案。

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

  • The message could have missing From, To, and Date fields.
  • An error occurs if a line in the message is not terminated by a CR+LF (that is, "\r\n") style newline.
  • The email message is empty.
  • The migration's target group does not exist or is in 'read-only' mode. For more information about the read-only sharing mode, see the Google Groups for Business sharing options.

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

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

希望对您有所帮助!

问题出在我试图通过 API 加入 post 的群组。

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

的组

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

我根据这些链接使用 SMTP 到 post 到 public 组: https://github.com/jmuhlich/mailman-archive-migration https://gist.github.com/tdonohue/cd2a643c5fca5f140cfd

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

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

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

我已经回到了 API 解决方案并且几乎完成了。花了一点时间让字符集编码在所有情况下都能正常工作。但除此之外效果很好。