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

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

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

Читать далее, это кажется, мне нужно опубликовать приложение Emacs в интернет-магазине Chrome, чтобы получить доступ к API диска. Это не имеет смысла для меня...Я заметил, что в разработке для Google Drive есть проект FUSE, который предполагает, что возможна собственная разработка. Однако, когда я просматривал код, я не видел компонента веб-магазина Chrome для его работы.

Я пытаюсь злоупотребить API, или есть маршрут, чтобы сделать эту работу, которая имеет больше смысла?

1 ответов


изменить:

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


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

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

a. Откройте консоль Google APIs.

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

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

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

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

  3. добавить "OAuth Client ID (требуется)" в разделе интеграция дисков (Я просто возился, и это, кажется, ключ поле.)

  4. добавить " Открыть URL (обязательно) URL, чтобы открыть для вашего приложения из пользовательского интерфейса google drive."

  5. отметьте "поддержка нескольких файлов"

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

  7. добавить auth scopes:

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

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

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

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

после того, как вы сделали выше, очистите свое состояние и переустановите приложение chrome. Затем попробуйте свой код еще раз, и он должен перестать давать вам 403.