【问题标题】:Can I get a URL link to a Gmail draft using the Gmail API?我可以使用 Gmail API 获取到 Gmail 草稿的 URL 链接吗?
【发布时间】:2014-08-19 04:44:34
【问题描述】:

新的 Gmail API 允许我们创建和查看草稿,但有没有办法获取 URL 链接来查看草稿?

我可以使用草稿的 ThreadId 手动创建链接,如下所示:

https://mail.google.com/mail/u/0/#drafts?compose={ThreadId}

但是,如果 Google 决定更改这些 URL 的结构,这将有些脆弱。我也不知道其他国家的人的 URL 是否会有所不同。 0 也会根据您在浏览器中登录的帐户数量而变化。有没有比像我这样手动创建更好的方法来获取此链接?

另外,有没有办法将身份验证信息与 URL 一起传递,以便用户在访问网页时登录?我假设没有办法做到这一点,但我想检查一下。如果用户未登录,草稿链接会弹出登录页面,登录后草稿不会显示。

【问题讨论】:

    标签: google-api gmail gmail-api


    【解决方案1】:

    不,手动创建 URL 目前是您的最佳选择。如果需要,您可以删除 u/0/,Gmail 将自动使用第一个经过身份验证的帐户。

    不,您无法自动将用户登录到 Gmail。

    【讨论】:

      【解决方案2】:

      为了将 URL 暴露给 API 创建的草稿,这是可行的:

      ...
      final Gmail.Users.Drafts.Create request = gmailService.users().drafts().create("me", content);
      final Draft response = request.execute();
      final String url = "https://mail.google.com/mail/ca/u/0/#drafts/" 
                   + response.getMessage().getThreadId() 
      ...
      

      当用户点击它时,gmail 会翻译(并重定向)到不同的 URL,但会打开正确的草稿。 然而,我在文档中没有发现这一点,因此它可能是一项不受支持的功能,有一天会停止工作。

      致谢:@Chris Wood 来自这个 SO 问题 stackoverflow.com/q/50124112/455449(请参阅他在问题下方的评论)


      关于传递认证信息:

      • 可能无法传递帐户 ID
      • 在 url 中传递密码将是一种安全废话(所以我相信这是不可能的)

      【讨论】:

        猜你喜欢
        • 2019-02-28
        • 2018-02-26
        • 2018-04-19
        • 2018-02-20
        • 2021-03-22
        • 1970-01-01
        • 2017-07-15
        • 2016-06-10
        • 1970-01-01
        相关资源
        最近更新 更多