5

A partire dal 20/04/2015 l'API di Google Documenti v3.0 è obsoleta e non funzionerà più su e dopo questa data. Pertanto, chiunque utilizzi questa API deve passare all'utilizzo dell'API di Google Drive.L'API di Google Drive ottiene il file Modifica l'URL

Ho integrato l'API di Google Drive nella mia applicazione PHP, ma non riesco a trovare come ottenere un URL di EDIT per un file che ho creato o caricato. Precedentemente nell'API di Google Documenti dopo aver caricato un file, la risposta restituiva un URL di modifica che sarebbe un URL diretto per modificare il file.

Sto utilizzando un account di servizio che utilizza una chiave generata dal mio account di sviluppatori google allo https://console.developers.google.com. Ciò significa che la mia applicazione sta effettuando chiamate per conto del mio account di servizio che l'account sviluppatore ha creato per me. Un account di servizio di Google non può essere accessibile dall'interfaccia utente di Drive, perché come utente non è possibile accedere all'account come se si trattasse di un account Google personale.

Quello che ho fatto è condiviso i miei documenti che ho caricato o creati con il mio account personale, e l'URL Google restituisce nella chiamata è denominato "alternateLink" ed è formattato come tale: https://docs.google.com/file/d/0B0nkjw07ekP9LUpuZG4tOHcxdkE/edit?usp=drivesdk

Tuttavia quando ha effettuato l'accesso all'account con cui ho condiviso il file precedente, va a un visualizzatore e non a "Google Docs Editor"

Come posso ottenere un collegamento di modifica del file con l'API di Google Drive?

risposta

1

Il collegamento in uso è corretto, quindi non è questo il problema.

+0

Grazie per la risposta. Sei corretto, "AlternativeLink" è il link di modifica. Il problema era il valore uploadtype e il tipo mime durante il caricamento del file di documento. – corey

1

L'AlternateLink è l'url di modifica e il mio problema era il valore uploadType e il tipo mime per il tipo di documento quando si tenta di caricare o creare il documento con l'api dell'unità google.

+0

Qual è la conclusione. Come posso ottenere il collegamento di modifica .... – Bik

1

Il problema principale era impostare la conversione true nel momento del caricamento. Senza convertire il file google ti darà il link per visualizzare non modificare.

Here otterrete il detial di upload del file. Si prega di controllare il codice qui sotto ho aggiunto solo il campo di conversione: -

$file = new Google_Service_Drive_DriveFile(); 
    $file->setTitle($title); 
    $file->setDescription($description); 
    $file->setMimeType($mimeType); 

    // Set the parent folder. 
    if ($parentId != null) { 
    $parent = new Google_Service_Drive_ParentReference(); 
    $parent->setId($parentId); 
    $file->setParents(array($parent)); 
    } 

    try { 
    $data = file_get_contents($filename); 

    $createdFile = $service->files->insert($file, array(
     'data' => $data, 
     'mimeType' => $mimeType, 
     'convert' => true // To convert you file 
    )); 
    return $createdFile; 
    } catch (Exception $e) { 
    print "An error occurred: " . $e->getMessage(); 
    } 
+0

Sì Bik, hai bisogno che la conversione sia impostata su true e devi impostare il tipo di file "uploadType" corretto. convert = true; uploadType = "media"; – corey