Подтвердить что ты не робот

Почему я получаю сообщение об ошибке "Ошибка аутентифицированного пользователя с ошибкой приложения с идентификатором клиента" при использовании API Google Диска?

Я работаю над интерфейсом Google Диска для Emacs. Концепция заключается в том, что Emacs может обеспечить платформенный агностический способ загрузки, изменения и сохранения текстовых документов, хранящихся на Google Диске. Я зарегистрировал свое приложение и могу выполнить аутентификацию с помощью OAuth2 и получить список файлов с помощью API списка документов, но когда я пытаюсь выполнить вставку с API-интерфейсом Google Диска, я вижу ошибку:

"Аутентифицированный пользователь не установил приложение с идентификатором клиента..."

Кроме того, мне кажется, мне нужно опубликовать приложение Emacs в Интернет-магазине Chrome, чтобы получить доступ к API-интерфейсу. Для меня это не имеет смысла... Я заметил, что в Google Диске есть проект FUSE, который предполагает, что возможно развитие на родном языке. Однако, когда я снял код, я не видел компонент Chrome Web Store, чтобы он работал.

Я пытаюсь неправильно использовать API, или есть ли способ сделать эту работу более разумной?

4b9b3361

Ответ 1

EDIT:

По словам Али Афшара из команды Google Диска, установка больше не требуется для использования этого API. Поэтому последующие действия могут быть более неактуальными, но будут оставлены в исторических целях.


Итак, сначала API не поддерживает разработку приложений в том смысле, что мы оба это делаем, но я бы не использовал слово native. Хорошей новостью является то, что я занимаюсь некоторыми исследованиями, а Google Диск - это просто ребрендинг Документов Google. Таким образом, API Google Docs может быть хорошим выбором для тех же целей.

В любом случае, вот шаги по устранению ошибки: "Аутентифицированный пользователь не установил приложение с идентификатором клиента...". Это ошибка 403, ради этого ответа. Эти шаги предполагают, что вы настроили приложение в хромовом веб-магазине, как требуется, и установили его. Я тоже работаю над своей локальной машиной, с моим проектом: http://github.com/tom-dignan/gdrive-cli, который я получил из-за этой ошибки, поэтому я думаю, что вы должны продолжать подключаться к вашей версии emacs, потому что я думаю, что мы сможем сделать эту работу.

а. Откройте консоль Google API.

б. Подтвердите, что вы уже включили apis в разделе "Доступ к API" и должны быть включены как API, так и SDK для Google. Там вы получаете ключи клиента /api и т.д. Я почти уверен, что вы уже это сделали, поэтому идите к C. (это здесь для других, кто, возможно, пропустил это)

с. В левой навигационной панели в разделе "Drive SDK" вам нужно будет сделать следующее:

  • Добавьте "URL поддержки" (обязательно)

  • Добавьте хотя бы небольшой значок приложения 16x16 (обязательно)

  • Добавить "Идентификатор клиента OAuth (обязательно)" в разделе "Интеграция с приводом" (я просто занимался мастерингом, и это, похоже, ключевое поле.)

  • Добавьте URL-адрес "Открыть URL-адрес (обязательно)" для открытия вашего приложения из пользовательского интерфейса Google. "

  • Отключите "Поддержка нескольких файлов"

  • Добавьте некоторые типы MIME и расширения файлов, например "text/plain" и txt

  • Добавьте области проверки подлинности:

    https://www.googleapis.com/auth/userinfo.email

    https://www.googleapis.com/auth/userinfo.profile

Не утруждайте себя попыткой добавить для Google Docs области аутентификации, потому что это не сработает. Google не хочет, чтобы мы использовали его таким образом, потому что файлы, создающие приложения для приложений, должны быть приватными для этого приложения. Интеграция с Документами Google должна быть отдельной.

Теперь я знаю, что вы, должно быть, думаете: "Почему я должен добавить некоторые из них..." Это потому, что форма делает необходимые поля. В моем случае я помещаю пару URL-адресов, указывающих на статические HTML-страницы.

После того, как вы сделали это, очистите свое состояние и переустановите Chrome. Затем повторите попытку кода, и он должен прекратить давать вам 403.