Je développe une application Web Java - JSF dans laquelle j'indique une fenêtre contextuelle permettant à l'utilisateur de choisir un document de Google Drive pour le télécharger.Je viens de récupérer un document Google Doc
Pour ce faire, j'ai un code js:
<script src="filepicker.js"></script>
<script>
function initPicker() {
var picker = new FilePicker({
apiKey: 'MY_API_KEY',
clientId: my_client_id,
buttonEl: document.getElementById('pick'),
onSelect : function(file) {
if (file.id) {
sendLinkToBean(file.id);
} else {
alert('Unable to download file.');
}
}
});
}
</script>
<a4j:jsFunction name="sendLinkToBean" action="#{gPPersonFormBean.downloadFile()}">
<a4j:param name="param1" assignTo="#{gPPersonFormBean.fileId}"/>
</a4j:jsFunction>
Le file.id arrive Bean et j'essaie de l'obtenir comme indiqué dans l'API G.Drive:
public void downloadFile(){
try {
Drive driveService = getDriveService();
OutputStream outputStream = new ByteArrayOutputStream();
driveService.files().get(fileId) .executeMediaAndDownloadTo(outputStream);
} catch (IOException e) {
String mess = "downloadFile(): "
+ (e.getMessage()!=null?". "+e.getMessage():"")
+ (e.getCause()!=null?". "+e.getCause():"");
logger.error(mess);
}
}
Mais Je reçois FileNotFoundException:
com.google.api.client.http.HttpResponseException: 404 Not Found
{
"error": {"theID"
"errors": [
{
"domain": "global",
"reason": "notFound",
"message": "File not found: 1tvnGWDCse4TFQwIvqEDTlvv2cebfs0C2JBtjTP5A42I.",
"locationType": "parameter",
"location": "fileId"
}
],
"code": 404,
"message": "File not found: theID."
}
}
Est-ce que quelqu'un sait pourquoi cela peut se produire? Merci d'avance.
EDIT: Je viens de comparer l'ID reçu avec celui donné par Google avec le lien du fichier et ils sont exactement les mêmes.
EDIT 2: Si je le fais driveService.files().list();
il retourne une liste vide.
Merci pour votre réponse, mais il a donné la même erreur, 404 Fichier pas trouvé – Aldeguer
@Aldeguer Je suis désolé pour la gêne occasionnée. J'ai vu votre EDIT2, juste maintenant. Puis-je vous demander si le fichier que vous souhaitez télécharger se trouve dans votre Google Drive? – Tanaike
Oui, c'est, je le sélectionne à partir d'un doc de lecteur fait avec Google Picker et JS. J'ai essayé les deux, un fichier créé par moi et un autre créé par un copain mais partagé avec moi. Personne n'a travaillé – Aldeguer