Gostaríamos de integrar a API do Google Drive com a importação do Tainacan e tenho interesse em desenvolver essa solução.
Basicamente no CSV colocaríamos a URL da imagem de um registro de forma que o Tainacan consiga executar baixar e atrelar a imagem. Essa funcionalidade pode ser também um plugin extra que se comunica com o Tainacan.
Portanto, gostaria de uma indicação de quais arquivos modificar, ou onde exatamente começar a investigar inserir essa mudança.
Só complementando, acho que encontrei uma parte que talvez já sane essa requisição:
Nesse caso só preciso deixar os documentos públicos no Google Drive e passar a URL direta dos arquivos que quero importar junto (com a formatação especificada na documentação)?
Infelizmente não está dando certo. Já tentei algumas variações de file: url: e apenas a url limpa tanto em special_document quanto em special_attachments
u/0 especifica a conta do usuário (usada se você estiver conectado a várias contas no Google).
/drive-viewer/ indica que o link é para visualização direta e não para download.
ID único do arquivo: A sequência complexa de caracteres e parâmetros (começando com AKGpiha...) é o ID do arquivo e informações de segurança que garantem que o usuário tenha a permissão correta.
Parâmetros adicionais (s1600-rw-v1): Esses parâmetros ajustam a resolução e a forma de renderização do arquivo (ex.: s1600 define o tamanho e rw pode ser um código de qualidade de imagem).
Como isso difere de um link de download direto
Visualização: Esse link abre uma interface de visualização do Google Drive, permitindo que o usuário veja o arquivo diretamente no navegador sem baixá-lo.
Parâmetros dinâmicos: Esses links não contêm a extensão porque são destinados a renderizar o conteúdo dentro do Google Drive.
Transformando em Link de Download Direto
Para criar um link de download direto (que não usa essa interface de visualização), você precisaria pegar o ID do arquivo e usá-lo no link direto:
Olá @smllb
o @mateus.m.luna e eu investigamos um pouco e me parece que tem um caminho para isso ser feito, desde que utilize o link que devolva uma imagem, e não a pré-visualização presente no google drive, mas temos que ajustar alguns pontos, o principal problema é que o google drive server os arquivos no formato webp:
E por padrão o WordPress não aceita fazer o upload desse formato de arquivo, caso você libere essa alteração a importação deve acontecer.
Porém os arquivos não serão renderizados normalmente, pois ao baixar o arquivo o Taincan/Worpdress não consegue montar o nome do arquivo corretamente, por conta da URL que é disponibilizada pelo google drive ter apenas uma “hash” para identificar o nome do arquivo.
Creio que se a gente conseguir determinar o nome do arquivo utilizando a resposta do cabeçalho a importação para esses tipos de links deve passar a funcionar, seria uma alteração alterando o trecho basename($url) que é utlizado para determinar o nome do arquivo:
um caminho que penso e utilizar o cabeçalho content-disposition caso ele exista na resposta da URL… vou continuar investigando aqui, algum forma de fazer isso…
Quando foi feito o release da ultima versão, fiz um teste de importação com imagens e obtive sucesso.
No entanto, tentei replicar importações com imagem agora de tarde e não deu certo… Não sei se houve alguma alteração por parte do Google ou se eu estou fazendo errado. Vou deixar em anexo o arquivo que estou usando pra testar.
É uma coleção simples, no arquivo tem 3 exemplos, todos deram erro infelizmente.
Os dois primeiros não funcionariam de qualquer forma. Os prefixos url: e file: são apenas para o campo special_document, como mencionado na documentação do Importador:
O último funcionaria se fosse o link direto pra imagem no Google Drive. Aquele link é o link para uma página de compartilhamento do Google Drive, onde na verdade você tem um HTML com várias coisas até chegar na tag de imagem de verdade, onde está o arquivo de fato. Este é o link da imagem equivalente:
Mateus, boa noite, perdão pela demora. Com esse link funcionou sim, mas há alguma maneira de parsear automaticamente o link de compartilhamento pra que a tag de imagem de verdade? Pensando no usuário final, não vejo um usuário comum conseguindo se guiar nas devtools até encontrar a URL direta para a imagem a ser exportada.
É possível fazer essa modificação em um release em um futuro próximo, se houver possibilidade?
Eu concordo, mas é o que a Google quer neste caso. Pra eles não é interessante que seja fácil de se montar um script que possa acessar os dados do drive desta forma. Eu não vejo uma forma disso ser possível sem que seja feito via API. Seria uma feature grande, mas eu imagino que seja possível sim fazer uma versão do importador que tenha entre suas configurações um campo onde os usuários colocariam uma chave para API do Google Drive. Só que usar esta API vai ter custos para quem for gerar essa chave, por isso precisa ficar nas mãos do usuário configurar.