Drive kullanıcı arayüzüyle entegrasyon& "Birlikte aç" içerik menüsü

Kullanıcı bir dosya seçip Drive kullanıcı arayüzündeki "Birlikte aç" seçeneğini tıkladığında menü öğesi, Drive yönlendirmeleri Drive Kullanıcı Arayüzü Yapılandırma entegrasyonu ile ilgili talimatları uygulayın.

"İçe aktarılıyor"u işaretlediyseniz Drive kullanıcı arayüzü yapılandırdığınızda gösterilen kutu kullanıcı, uygulamaya özel ve kullanıcı kitlesine yönelik Google Workspace dosyaları açılacak. Drive kullanıcı arayüzünü yapılandırdığınızda entegrasyonu için, uygulamaya özel dosyalar "Varsayılan MIME türleri"nde tanımlanır ve "Varsayılan dosya uzantıları" Google Workspace dosyaları "İkincil MIME türleri"nde tanımlanır ve "İkincil dosya uzantıları" alanları.

Drive, kullanıcının açmak istediği her dosyanın MIME ayarını kontrol eder türler arasında geçiş yapın:

  • "Varsayılan MIME türleri" bölümünde tanımlanan MIME türleri için alanında, dosya kimliği uygulamanıza aktarılır. Uygulamaya özel dosyaların nasıl işleneceği hakkında bilgi için Uygulamaya özel dokümanlar için Açık URL'yi işleme konusuna bakın.

  • "İkincil MIME türleri" bölümünde tanımlanan MIME türleri için alan, Drive kullanıcı arayüzünde, kullanıcıya dosya türünü soran bir iletişim kutusu gösteriliyor. Google Workspace dosyasını şuna dönüştür: Örneğin, Drive kullanıcı arayüzündeki Google Dokümanlar dosyası ve "İkincil MIME türler" alan, uygulamanızın metin/düz veya uygulama/pdf desteklediğini gösteriyorsa, Drive kullanıcı arayüzü, kullanıcıya Düz Metne dönüştürmek isteyip istemediğini soruyor veya PDF olarak gönderin.

    Google Workspace'in nasıl kullanılacağı hakkında bilgi için Google Workspace dokümanları için açık URL'yi işleme başlıklı makaleyi inceleyin. Google Workspace dokümanlarının ve MIME türü dönüşüm biçimlerinin listesi için: Google Workspace için MIME türlerini dışa aktarma başlıklı makaleyi inceleyin. dokümanlar için de ekleyebilirsiniz.

Uygulamaya özel dokümanlar için bir Açık URL işleme

Drive kullanıcı arayüzünü yapılandırma entegrasyon, Uygulamanız, açılacak bilgileri içeren şablon değişkenleri alıyor seçin. Uygulamanız varsayılan bir şablon değişkenleri grubu alır state parametresinde olup olmadığını kontrol edin. İlgili içeriği oluşturmak için kullanılan uygulamaya özel bir Açık URL için varsayılan state bilgileri şöyledir:

{
  "ids": ["ID"],
  "resourceKeys":{"RESOURCE_KEYS":"RESOURCE_KEYS"},
  "action":"open",
  "userId":"USER_ID"
}

Bu çıkış aşağıdaki değerleri içerir:

  • ID: Üst klasörün kimliği.
  • RESOURCE_KEYS: Eşlenen dosya kimliklerinin JSON sözlüğü ilgili kaynak anahtarlarını da kullanabilirsiniz.
  • open: Gerçekleştirilen işlem. Open (Open) kullanılırken değer open olur URL'yi tıklayın.
  • USER_ID: Kullanıcıyı benzersiz şekilde tanımlayan profil kimliği.

Uygulamanızın bu isteği yerine getirmek için aşağıdaki adımları izlemesi gerekir:

  1. action alanının open değerinin, ids alanının ise gösterir.
  2. Kullanıcı için yeni bir oturum oluşturmak amacıyla userId değerini kullanın. Daha fazla oturum açmış kullanıcılarla ilgili bilgilere göz atın. Kullanıcılar ve yeni etkinlikler gibi).
  3. Kontrol etmek için files.get yöntemini kullanın dosya meta verilerini getirmek ve dosya içeriğini indirmek için ID değerleri.
  4. İstekte resourceKeys politikası ayarlandıysa X-Goog-Drive-Resource-Keys istek başlığı. Daha fazla bilgi için Kaynak kullanarak bağlantıyla paylaşılan dosyalara erişme tuşlar.

state parametresi URL kodlamalı olduğundan uygulamanız, bu çıkışı işlemelidir kullanarak bunu JSON biçiminde ayrıştırır.

Google Workspace dokümanları için açık URL'yi işleme

Drive kullanıcı arayüzünü yapılandırma entegrasyonundan emin olduğunuzda, uygulamanız varsayılan olarak state parametresindeki şablon değişkenlerini girin. Varsayılan state bilgileri Google Workspace Open URL'si şöyledir:

{
  "exportIds": ["ID"],
  "resourceKeys":{"RESOURCE_KEYS":"RESOURCE_KEYS"},
  "action":"open",
  "userId":"USER_ID"
}

Bu çıkış aşağıdaki değerleri içerir:

  • EXPORT_ID: Oluşturulan dosya kimliklerinin virgülle ayrılmış listesi dışa aktarılmış (yalnızca yerleşik Google dokümanları açılırken kullanılır).
  • RESOURCE_KEYS: Eşlenen dosya kimliklerinin JSON sözlüğü ilgili kaynak anahtarlarını da kullanabilirsiniz.
  • open: Gerçekleştirilen işlem. Open (Open) kullanılırken değer open olur URL'yi tıklayın.
  • USER_ID: Kullanıcıyı tanımlayan profil kimliği.

Uygulamanızın bu isteği yerine getirmek için aşağıdaki adımları izlemesi gerekir:

  1. Hem open hem de bunu algılayarak bunun bir dosya açma isteği olduğunu doğrulayın değerini state alanına ve exportIds alanının varlığına ayarlayın.

  2. Kontrol etmek için files.get yöntemini kullanın dosya meta verilerini getirmek ve MIME türünü belirlemek için EXPORT_ID değerleri.

  3. Dosya içeriğini files.export yöntemini kullanabilirsiniz. Aşağıdakiler kod örneği, bir Google Workspace dokümanının istenen MIME türü.

  4. İstekte resourceKey politikası ayarlandıysa X-Goog-Drive-Resource-Keys istek başlığı. Daha fazla bilgi için Kaynak kullanarak bağlantıyla paylaşılan dosyalara erişme tuşlar.

    Java

    drive/snippets/drive_v3/src/main/java/ExportPdf.java
    import com.google.api.client.googleapis.json.GoogleJsonResponseException;
    import com.google.api.client.http.HttpRequestInitializer;
    import com.google.api.client.http.javanet.NetHttpTransport;
    import com.google.api.client.json.gson.GsonFactory;
    import com.google.api.services.drive.Drive;
    import com.google.api.services.drive.DriveScopes;
    import com.google.auth.http.HttpCredentialsAdapter;
    import com.google.auth.oauth2.GoogleCredentials;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.OutputStream;
    import java.util.Arrays;
    
    /* Class to demonstrate use-case of drive's export pdf. */
    public class ExportPdf {
    
      /**
       * Download a Document file in PDF format.
       *
       * @param realFileId file ID of any workspace document format file.
       * @return byte array stream if successful, {@code null} otherwise.
       * @throws IOException if service account credentials file not found.
       */
      public static ByteArrayOutputStream exportPdf(String realFileId) throws IOException {
        // Load pre-authorized user credentials from the environment.
        // TODO(developer) - See https://developers.google.com/identity for
        // guides on implementing OAuth2 for your application.
        GoogleCredentials credentials = GoogleCredentials.getApplicationDefault()
            .createScoped(Arrays.asList(DriveScopes.DRIVE_FILE));
        HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(
            credentials);
    
        // Build a new authorized API client service.
        Drive service = new Drive.Builder(new NetHttpTransport(),
            GsonFactory.getDefaultInstance(),
            requestInitializer)
            .setApplicationName("Drive samples")
            .build();
    
        OutputStream outputStream = new ByteArrayOutputStream();
        try {
          service.files().export(realFileId, "application/pdf")
              .executeMediaAndDownloadTo(outputStream);
    
          return (ByteArrayOutputStream) outputStream;
        } catch (GoogleJsonResponseException e) {
          // TODO(developer) - handle error appropriately
          System.err.println("Unable to export file: " + e.getDetails());
          throw e;
        }
      }
    }

    Python

    drive/snippets/drive-v3/file_snippet/export_pdf.py
    import io
    
    import google.auth
    from googleapiclient.discovery import build
    from googleapiclient.errors import HttpError
    from googleapiclient.http import MediaIoBaseDownload
    
    
    def export_pdf(real_file_id):
      """Download a Document file in PDF format.
      Args:
          real_file_id : file ID of any workspace document format file
      Returns : IO object with location
    
      Load pre-authorized user credentials from the environment.
      TODO(developer) - See https://developers.google.com/identity
      for guides on implementing OAuth2 for the application.
      """
      creds, _ = google.auth.default()
    
      try:
        # create drive api client
        service = build("drive", "v3", credentials=creds)
    
        file_id = real_file_id
    
        # pylint: disable=maybe-no-member
        request = service.files().export_media(
            fileId=file_id, mimeType="application/pdf"
        )
        file = io.BytesIO()
        downloader = MediaIoBaseDownload(file, request)
        done = False
        while done is False:
          status, done = downloader.next_chunk()
          print(f"Download {int(status.progress() * 100)}.")
    
      except HttpError as error:
        print(f"An error occurred: {error}")
        file = None
    
      return file.getvalue()
    
    
    if __name__ == "__main__":
      export_pdf(real_file_id="1zbp8wAyuImX91Jt9mI-CAX_1TqkBLDEDcr2WeXBbKUY")

    Node.js

    drive/snippets/drive_v3/file_snippets/export_pdf.js
    /**
     * Download a Document file in PDF format
     * @param{string} fileId file ID
     * @return{obj} file status
     * */
    async function exportPdf(fileId) {
      const {GoogleAuth} = require('google-auth-library');
      const {google} = require('googleapis');
    
      // Get credentials and build service
      // TODO (developer) - Use appropriate auth mechanism for your app
      const auth = new GoogleAuth({
        scopes: 'https://www.googleapis.com/auth/drive',
      });
      const service = google.drive({version: 'v3', auth});
    
      try {
        const result = await service.files.export({
          fileId: fileId,
          mimeType: 'application/pdf',
        });
        console.log(result.status);
        return result;
      } catch (err) {
        // TODO(developer) - Handle error
        throw err;
      }
    }

    PHP

    drive/snippets/drive_v3/src/DriveExportPdf.php
    use Google\Client;
    use Google\Service\Drive;
    function exportPdf()
    {
        try {
            $client = new Client();
            $client->useApplicationDefaultCredentials();
            $client->addScope(Drive::DRIVE);
            $driveService = new Drive($client);
            $realFileId = readline("Enter File Id: ");
            $fileId = '1ZdR3L3qP4Bkq8noWLJHSr_iBau0DNT4Kli4SxNc2YEo';
            $fileId = $realFileId;
            $response = $driveService->files->export($fileId, 'application/pdf', array(
                'alt' => 'media'));
            $content = $response->getBody()->getContents();
            return $content;
    
        }  catch(Exception $e) {
             echo "Error Message: ".$e;
        }
    
    }

Dönüştürülen dosyaları salt okunur olarak görüntüleyin veya kullanıcının şunları yapmasına izin veren bir iletişim kutusu gösterin dosyayı yeni dosya türünde kaydedin.

state parametresi URL kodlamalı olduğundan uygulamanız, bu çıkışı işlemelidir kullanarak bunu JSON biçiminde ayrıştırır.

Kullanıcılar ve yeni etkinlikler

Drive uygulamaları tüm "açık şununla açık" olarak değerlendirilmelidir: potansiyel olaylar oturum açın. Bazı kullanıcıların birden fazla hesabı olabilir. Bu nedenle, state öğesindeki kullanıcı kimliği parametresi mevcut oturumla eşleşmeyebilir. state içindeki kullanıcı kimliği parametresi geçerli oturumla eşleşmediyse şunun için mevcut oturumu sonlandırın: uygulamasında oturum açın ve istenen kullanıcı olarak oturum açın.

Uygulamalar, Google Drive kullanıcı arayüzünden uygulama açmanın yanı sıra uygulama içinden içerik seçmek için bir dosya seçici görüntüler. Daha fazla Google Seçici'ye bakın.