1

GoogleのシートAPIを使用してシートを作成していて、シートのiframe埋め込み可能なリンクを取得したいと考えています。.net google sheet APIを使用してGoogleスプレッドシートで「publish to web」を設定するにはどうすればよいですか?

ServiceAccountCredential credential = new ServiceAccountCredential(
       new ServiceAccountCredential.Initializer(serviceAccountEmail) 
       { 
        Scopes = new[] { SheetsService.Scope.Spreadsheets,DriveService.Scope.DriveFile} 
       }.FromCertificate(certificate)); 
      BaseClientService.Initializer clientService = new BaseClientService.Initializer() 
      { 
       HttpClientInitializer = credential, 
       ApplicationName = ApplicationName, 
      }; 
      var service = new SheetsService(clientService); 
      var spareSheet = new Spreadsheet(); 
      spareSheet.Properties = new SpreadsheetProperties(); 
      spareSheet.Properties.Title = "TestSheet"; 

      spareSheet = service.Spreadsheets.Create(spareSheet).Execute(); 
+0

まあ、あなたが[シートのAPI](https://developers.google.com/sheets/guides/concepts)でそれを行うことができないようです。また、そのドキュメンテーションを確認した場合、この「ウェブへの公開」に関するオプションや指示はありません。私が見つけた別の方法は、[ドライブAPIリビジョン](https://developers.google.com/drive/v3/reference/revisions)を使用することです。この[SOの質問](http://stackoverflow.com/questions/38533957/google-sheets-api-how-to-publish-to-web-for-embeddable-sheet)で確認できます。 – KENdi

答えて

1
var driveService = new DriveService(clientService); 


      var fileMetadata = new Google.Apis.Drive.v3.Data.File(); 
      fileMetadata.Name = fileName; 
      fileMetadata.MimeType = "application/vnd.google-apps.spreadsheet"; 
      var fileRequest = driveService.Files.Create(fileMetadata); 
      fileRequest.Fields = "id"; 
      var file = fileRequest.Execute(); 
      Console.WriteLine("File ID: " + file.Id); 
      // Console.WriteLine("URL"+file.) 
      Permission userPermission = new Permission(); 
      userPermission.Type = "anyone"; 
      userPermission.Role = "writer"; 
      // userPermission.we 
      var revision = new Revision(); 
      revision.PublishAuto = true; 
      revision.Published = true; 
      revision.PublishedOutsideDomain = true; 
      driveService.Permissions.Create(userPermission, file.Id).Execute(); 
      var request = driveService.Revisions.Update(revision, file.Id, "head"); 
      request.Execute(); 
string iframeURl="<iframe src='https://docs.google.com/spreadsheets/d/"+file.Id+"/edit?rm=minimal#gid=1333667591' height='900' width='800'></iframe>"; 
関連する問題