Как идентификатор сообщения Gmail или ThreadId сопоставляются с новым интерфейсом Gmail?

Изменить: обращаясь к первому комментарию ниже и для ясности, это не вопрос кода. Вопрос просто:

Что я помещаю в запросе URI нового пользовательского интерфейса Gmail для просмотра черновика сообщения, созданного API Gmail?

Несмотря на то, что это не вопрос кода, я спрашиваю о переполнении стека, поскольку он предпочитает платформу Google для вопросов API Gmail.

-

Если я рассматриваю черновик сообщения в новом пользовательском интерфейсе Gmail, URI выглядит примерно так:

https://mail.google.com/mail/u/1/?zx=iij9apqgzdf4#drafts?compose=jrjtXSqXwlFGnSGCQgDCdnHGVFdlpFMgzsCNgpQstQLxdLCMkjKstBmWZkCmjhWTQnpsZCJF

Я не вижу никакого способа создать такую ссылку из Id или ThreadId сообщения, созданного с помощью API Gmail.

Раньше это можно было сделать:

https://mail.google.com/mail/u/1/?zx=ov61dxfbrcga#drafts?compose=1631caae9dbb074d

где значение "compose" - это Id.

Как можно сделать то же самое в новом интерфейсе?

Ответ 1

Благодаря @frank-szilinski - он указал, что старый формат теперь переведен. Т.е. теперь это работает снова:

https://mail.google.com/mail/ca/u/1/#drafts/1661237c4db71ace

Однако он не работает, когда вкладка Gmail еще не открыта.

Ответ 2

Я столкнулся с одной и той же проблемой и имел некоторый успех в этой проблеме, а также некоторые проблемы, которые я до сих пор не могу преодолеть.

Хорошие новости: новый формат параметров compose - это своего рода кодировка "base40". Я искал источник Gmail для строки с ограниченным алфавитом и обнаружил и деобфузировал бит кода, выполняющий эту кодировку/декодирование: https://gist.github.com/danrouse/52212f0de2fbfe33cfc56583f20ccb74

Этот код включает функцию encode и decode которая должна работать для параметров запроса в формате Gmail.

Плохие новости. Значения, которые он кодирует для открытия черновиков электронной почты, по-видимому, недоступны с использованием API Gmail. В частности, они выглядят следующим образом: thread-f:NEW_THREAD_ID+msg-a:DRAFT_ID - в то время как идентификатор проекта такой же, как и раньше, идентификатор потока не соответствует ни одному из идентификаторов, возвращаемых API Gmail.

Интересно отметить, что если вы проверяете предметную строку в пользовательском интерфейсе Gmail, у нее есть атрибуты набора данных, включая все как старые, так и новые идентификаторы формата, но все еще неясно, как их программно получить.

Ответ 3

Основываясь на @kremonte gist и @chris-wood комментариях, я сделал жемчужину рельсов, которая правильно создает URL-адрес open-the-draft-inside-gmail.

Здесь - https://github.com/GoodMeasuresLLC/gmail_compose_encoder

Это для случая использования "мой код создал черновик (предварительно добавленный с некоторым текстом, конечно), и теперь я хочу открыть черновик в режиме компоновки, чтобы мой пользователь мог просмотреть его, прежде чем нажать" отправить ".

Ответ 4

Сейчас:

thread-f:decimal(DRAFT_ID)|msg-a:DRAFT_ID+msg-a:DRAFT_ID