GMail API перестал работать с Ruby клиентом с 11 апреля - PullRequest
0 голосов
/ 15 апреля 2020

Были ли какие-либо критические изменения, внесенные Google в API GMail 11 апреля 2020 года?

У нас есть ruby веб-приложение, которое также имеет расширение Chrome. (довольно старый, ruby 2.1.0), который использует google-api-client версии 0.6.4 и до сих пор работал отлично, но с 11 апреля приложение перестало работать так, что все вызовы API-интерфейсов GMail сбой с ошибкой 404.

Чтобы дать подсказку, у нас есть библиотека, откуда мы вызываем клиент Google для выполнения действий, что-то вроде этого:

def thread_metadata(id)
@metadata ||= execute(gmail_api.users.threads.get,
  {
    'collection' => 'public',
    'userId' => 'me',
    'id' => id,
    'format' => 'metadata',
    'metadataHeaders' => 'Subject'
  }
)

Однако ответ, который мы получаем от Google, равен 404 с сообщение что-то вроде этого:

он запросил URL /discovery/v1/apis/gmail/v1/gmail/v1/users/me/threads/16365500056684b0?collection=public&format=full не найден на этом сервере. Это все, что мы знаем.

Понятия не имею, что пошло не так, за исключением ошибки 404, которая неожиданно начала появляться с 11 апреля.

1 Ответ

0 голосов
/ 24 апреля 2020

Вам нужно будет обновить ваш google-api-client гем, начиная с версии 0.8.6 они изменились, когда baseUrl должен делать запросы . Предположительно, путь, который старые драгоценные камни все еще использовали, оставался неизменным до недавнего времени.

method_base, используемый для генерации URI, возвращает что-то другое до 0.8.6:

irb(main):046:0> gmail_api.method_base
=> #<Addressable::URI:0x3ff4ff4e319c URI:https://www.googleapis.com/discovery/v1/apis/gmail/v1/rest>

В 0.8. 6 +:

irb(main):009:0> gmail_api.method_base
=> #<Addressable::URI:0x3ff97faf4610 URI:https://www.googleapis.com/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...