Проблема интеграции с пользовательским интерфейсом Google Диска: для файлов моего приложения отсутствует предложение «Открыть с помощью ...» - PullRequest
0 голосов
/ 26 мая 2020

Недавно я запустил приложение Marketplace с интеграцией пользовательского интерфейса Google Диска.

И у меня возникла проблема, из-за которой Google Диск не дает пользователям, у которых на Диске не установлено мое приложение, предложение «Открыть с помощью ...» при предварительном просмотре нашего стороннего ярлыка. файл.

MimeType файла используется Диском для предложения приложений, совместимых с mimeType. Поэтому кажется, что Google Drive не может подключить mimeType, который я устанавливаю в файлах своего приложения, к mimeType во внутренних записях.

mimeType, который я установил для файлов моего приложения, - application/vnd.google-apps.drive-sdk (сторонний ярлык файл), как указано в документации [1]. Изучив html страницы, мы видим, что у Диска действительно правильный mimeType

<span class="a-q-Jc-wg" data-tooltip="application/vnd.google-apps.drive-sdk.6964198....." aria-label="application/vnd.google-apps.drive-sdk.6964198....." data-tooltip-align="b,c" data-tooltip-delay="500" data-tooltip-unhoverable="true">my app</span>

Эти числа (6964198 ...), добавленные в конце, составляют мой проект Google Cloud. Мне бы. При проверке другого приложения торговой площадки, Lucidchart, их mimeType равен application/vnd.google-apps.drive-sdk.7081045131. Если кто-то делится ярлыком Lucidchart с другим человеком, у которого не установлен lucidchart, при открытии он получает сообщение «Открыть с помощью Lucidchart». Его приложение работает, как ожидалось, а мое - нет, и сравнение свойств стороннего файла ярлыков показывает нет разницы.

Если посмотреть на одно из свойств нашего файла через «Получить сведения» на Диске, можно увидеть, что Google Диск может распознать fileType как файл моего приложения.

После того, как пользователь установит мое приложение, он сможет увидеть «Открыть с помощью ...» при предварительном просмотре файла. Создается впечатление, что mimeType настроен правильно и доступен для привода, но GDrive неправильно использует его перед установкой.

Я потратил довольно много времени, пытаясь выяснить, что могло вызвать эту проблему, но Я застрял. Я трижды проверил свою конфигурацию, и, похоже, все настроено правильно, как указано в документации [2].

У меня открыто 2 тикета в поддержку Google по этому поводу, я даже звонил им, но в итоге они сказали, что вроде я все делаю правильно, но они мне ничем помочь не могут далее и предложил разместить вопрос о StackOverflow ... Поэтому я прошу вашей помощи здесь.

Бэкэнд моего приложения написан на Node.js и использует модуль googleapis:51.0.0.

Вот фрагмент моего кода, который сохраняет файл:

const gDrivePayload = {
    requestBody: {
        name: presentation.name,
        mimeType: "application/vnd.google-apps.drive-sdk",
        parents: [folderId],
        properties: { presentationId }
    }
};

if (thumbnailData) {
    gDrivePayload.requestBody.contentHints = { thumbnail: { image: thumbnailData } };
}

const drive = google.drive({ version: "v3", auth: gAuthClient });
const gDriveResp = await drive.files.create(gDrivePayload);

gAuthClient - это экземпляр google.auth.OAuth2 с предоставленными пользовательскими токенами, которые были получены через поток oauth2, который был выполнен пользователем.

thumbnailData - изображение jpeg в кодировке base64.

[1] https://developers.google.com/drive/api/v3/third-party-shortcuts

[2] https://developers.google.com/drive/api/v3/enable-sdk?hl=sk

...