private string ToGoogleTable() { WorksheetFeed wsFeed = TargetTable.Worksheets; WorksheetEntry worksheet = (WorksheetEntry)wsFeed.Entries[0]; // Define the URL to request the list feed of the worksheet. AtomLink listFeedLink = worksheet.Links.FindService(GDataSpreadsheetsNameTable.ListRel, null); // Fetch the list feed of the worksheet. ListQuery listQuery = new ListQuery(listFeedLink.HRef.ToString()); ListFeed listFeed = service.Query(listQuery); CellQuery cellQuery = new CellQuery(worksheet.CellFeedLink); CellFeed cellFeed = service.Query(cellQuery); CellEntry cellEntry = new CellEntry(1, 1, "oid"); cellFeed.Insert(cellEntry); cellEntry = new CellEntry(1, 2, "value"); cellFeed.Insert(cellEntry); cellEntry = new CellEntry(1, 3, "type"); cellFeed.Insert(cellEntry); ProgressBarSetStartParams(progressBar1, ListData[ListData.Count - 1].Count); tabControlShow(progressBar1); tabControlShow(label3); for (int i = 0; i < ListData[ListData.Count - 1].Count; i++) { IncrementProgressbar(progressBar1); IncrementGeneralLabel(string.Format("Выполнено {0}/{1}", i + 1, ListData[ListData.Count - 1].Count)); service.Insert(listFeed, ListData[ListData.Count - 1].GetCustom(i)); } tabControlShow(progressBar1, false); tabControlShow(label3, false); return("Данные записаны"); }
private void writeJob(string siteName, int count, uint index, CellFeed cellFeed) { Random rand = new Random(); siteName += " " + new String('I', rand.Next(2) + 1); string description = this.partNames[rand.Next(partNames.Count - 1)] + " " + this.repairActivities[rand.Next(repairActivities.Count - 1)]; cellFeed.Insert(new CellEntry(index + 2, 1, "JOB" + index.ToString("0000#"))); cellFeed.Insert(new CellEntry(index + 2, 2, description)); cellFeed.Insert(new CellEntry(index + 2, 3, siteName)); }
void writeDataToGoogle(object sender, DoWorkEventArgs e) { WorksheetEntry ws = this.access.getDataWorksheet(); CellFeed cellFeed = this.access.service.Query(new CellQuery(ws.CellFeedLink)); cellFeed.Insert(new CellEntry(1, 1, "JobID")); cellFeed.Insert(new CellEntry(1, 2, "Job Description")); cellFeed.Insert(new CellEntry(1, 3, "Job Location")); if (this.setup()) { this.writeJobsToGoogleDocs(cellFeed); } }
private static bool UpdateHeaders(WorksheetEntry wsEntry) { bool updated = false; try { googleHeaders = new string[headers.Length]; CellQuery cellQuery = new CellQuery(wsEntry.CellFeedLink); cellQuery.MaximumRow = 1; cellQuery.MinimumRow = 1; cellQuery.MinimumColumn = 1; cellQuery.MaximumColumn = (uint)headers.Length; CellFeed cellFeed = sheetsService.Query(cellQuery); if (cellFeed.Entries.Count > 0) { for (int i = 0; i < cellFeed.Entries.Count; i++) { CellEntry cell = (CellEntry)cellFeed.Entries[i]; googleHeaders[i] = cell.InputValue; } if (!googleHeaders.Contains("SourceModelId")) { string headerText = "SourceModelId"; // new column CellEntry cell = new CellEntry(1, (uint)headers.Length, headerText); cellFeed.Insert(cell); googleHeaders[headers.Length - 1] = headerText; } } else { for (int i = 0; i < headers.Length; i++) { string headerText = headers[i]; CellEntry cell = new CellEntry(1, Convert.ToUInt16(i + 1), headerText); cellFeed.Insert(cell); } updated = true; } } catch (Exception ex) { MessageBox.Show("Failed to update headers in Google Worksheet.\n" + ex.Message, "Update Headers", MessageBoxButton.OK, MessageBoxImage.Warning); } return(updated); }
public void AddNewHeader(string header) { WorksheetEntry.Cols += 1; WorksheetEntry.Update(); CellQuery cellQuery = new CellQuery(WorksheetEntry.CellFeedLink); cellQuery.MaximumRow = 1; //cellQuery.Range = "A543:L543"; CellFeed cellFeed = service.Query(cellQuery); CellEntry cellEntry = new CellEntry(1, (uint)cellFeed.Entries.Count + 1, header); cellFeed.Insert(cellEntry); }
/// <summary> /// 指定したシートにヘッダを追加 /// </summary> /// <param name="sheet">ヘッダを追加するワークシート</param> /// <param name="headers">ヘッダ</param> /// <returns></returns> bool AddNewHeader(WorksheetEntry sheet, params string[] headers) { Debug.WriteLine("AddHeader num=" + headers.Count().ToString()); //現状、どっちでも動く // CellQuery cellQuery = new CellQuery(sheet.CellFeedLink); // CellFeed cellFeed = _wrapper.Query(cellQuery); CellFeed cellFeed = sheet.QueryCellFeed(); uint column = 1; //InsertはBatch処理できないらしい。 foreach (var it in headers) { Debug.WriteLine(string.Format("AddHeader name:{0} column:{1}", it, column)); var entry = new CellEntry(1, column, it); column++; cellFeed.Insert(entry); } return(true); }
public override void Log(LoggingEntery LE) { IniFile Ini = new IniFile(Path.Combine(Environment.CurrentDirectory, "GoogleDocs.ini")); // nir start //////////////////////////////////////////////////////////////////////////// // STEP 1: Configure how to perform OAuth 2.0 //////////////////////////////////////////////////////////////////////////// // TODO: Update the following information with that obtained from // https://code.google.com/apis/console. After registering // your application, these will be provided for you. //string CLIENT_ID = "339569043085-6k0io9kdubi7a3g3jes4m76t614fkccr.apps.googleusercontent.com"; // This is the OAuth 2.0 Client Secret retrieved // above. Be sure to store this value securely. Leaking this // value would enable others to act on behalf of your application! //string CLIENT_SECRET = "wWC4Wcb12RbQg4YuGWJtkh4j"; // Space separated list of scopes for which to request access. //string SCOPE = "https://spreadsheets.google.com/feeds https://docs.google.com/feeds"; // This is the Redirect URI for installed applications. // If you are building a web application, you have to set your // Redirect URI at https://code.google.com/apis/console. //tring REDIRECT_URI = "urn:ietf:wg:oauth:2.0:oob"; //////////////////////////////////////////////////////////////////////////// // STEP 2: Set up the OAuth 2.0 object //////////////////////////////////////////////////////////////////////////// // OAuth2Parameters holds all the parameters related to OAuth 2.0. OAuth2Parameters parameters = new OAuth2Parameters(); // Set your OAuth 2.0 Client Id (which you can register at // https://code.google.com/apis/console). parameters.ClientId = Ini.IniReadValue(ConnectSection, "ClientID"); // Set your OAuth 2.0 Client Secret, which can be obtained at // https://code.google.com/apis/console. parameters.ClientSecret = Ini.IniReadValue(ConnectSection, "ClientSecret"); // Set your Redirect URI, which can be registered at // https://code.google.com/apis/console. parameters.RedirectUri = Ini.IniReadValue(ConnectSection, "RedirectURI"); // Set your refresh token parameters.RefreshToken = Ini.IniReadValue(ConnectSection, "RefreshToken"); parameters.AccessToken = Ini.IniReadValue(ConnectSection, "LastAccessToken"); // Set the scope for this particular service. parameters.Scope = Ini.IniReadValue(ConnectSection, "Scope"); // Get the authorization url. The user of your application must visit // this url in order to authorize with Google. If you are building a // browser-based application, you can redirect the user to the authorization // url. //string authorizationUrl = OAuthUtil.CreateOAuth2AuthorizationUrl(parameters); //Console.WriteLine(authorizationUrl); //Console.WriteLine("Please visit the URL above to authorize your OAuth " // + "request token. Once that is complete, type in your access code to " // + "continue..."); //////////////////////////////////////////////////////////////////////////// // STEP 4: Get the Access Token //////////////////////////////////////////////////////////////////////////// // Once the user authorizes with Google, the request token can be exchanged // for a long-lived access token. If you are building a browser-based // application, you should parse the incoming request token from the url and // set it in OAuthParameters before calling GetAccessToken(). OAuthUtil.RefreshAccessToken(parameters);//parameters.AccessToken; Ini.IniWriteValue(ConnectSection, "LastAccessToken", parameters.AccessToken); // Console.WriteLine("OAuth Access Token: " + accessToken); //////////////////////////////////////////////////////////////////////////// // STEP 5: Make an OAuth authorized request to Google //////////////////////////////////////////////////////////////////////////// // Initialize the variables needed to make the request GOAuth2RequestFactory requestFactory = new GOAuth2RequestFactory(null, "OctoTipPlus", parameters); SpreadsheetsService myService = new SpreadsheetsService("OctoTipPlus"); myService.RequestFactory = requestFactory; // nir end string User = Ini.IniReadValue("UserLogin", "User"); string Password = Ini.IniReadValue("UserLogin", "Password"); // SpreadsheetsService myService = new SpreadsheetsService("MySpreadsheetIntegration-v1"); //myService.setUserCredentials(User,Password); SpreadsheetQuery Squery = new SpreadsheetQuery(); string Sender = LE.Sender; Squery.Title = Sender; Squery.Exact = true; SpreadsheetFeed Sfeed; try { Sfeed = myService.Query(Squery); } catch (Google.GData.Client.InvalidCredentialsException e) { throw(new Exception(string.Format("Credentials error in google acount for user:{0}", User), e)); } if (Sfeed.Entries.Count == 0) { //DriveService service1 = new DriveService(); //service.SetAuthenticationToken(parameters.AccessToken);//.setUserCredentials(User,Password); //Google.GData.Client.GOAuth2RequestFactory requestf = new Google.GData.Client.GOAuth2RequestFactory(null, "OctoTipPlus",parameters); OAuthUtil.RefreshAccessToken(parameters); //parameters.AccessToken; Ini.IniWriteValue(ConnectSection, "LastAccessToken", parameters.AccessToken); Google.GData.Documents.DocumentsService service = new Google.GData.Documents.DocumentsService("OctoTipPlus"); GOAuth2RequestFactory requestFactory2 = new GOAuth2RequestFactory(null, "OctoTipPlus", parameters); service.RequestFactory = requestFactory2; //service.RequestFactory=requestf; // Instantiate a DocumentEntry object to be inserted. Google.GData.Documents.DocumentEntry entry = new Google.GData.Documents.DocumentEntry(); // Set the document title entry.Title.Text = LE.Sender; // Add the document category entry.Categories.Add(Google.GData.Documents.DocumentEntry.SPREADSHEET_CATEGORY); // Make a request to the API and create the document. Google.GData.Documents.DocumentEntry newEntry = service.Insert( Google.GData.Documents.DocumentsListQuery.documentsBaseUri, entry); Squery = new SpreadsheetQuery(); Squery.Title = Sender; Squery.Exact = true; Sfeed = myService.Query(Squery); } SpreadsheetEntry spreadsheet = (SpreadsheetEntry)Sfeed.Entries[0]; WorksheetEntry ProtocolWorksheetEntry = null; AtomLink link = spreadsheet.Links.FindService(GDataSpreadsheetsNameTable.WorksheetRel, null); WorksheetQuery Wquery = new WorksheetQuery(link.HRef.ToString()); WorksheetFeed Wfeed = myService.Query(Wquery); foreach (WorksheetEntry worksheet in Wfeed.Entries) { if (worksheet.Title.Text == LE.SubSender) { ProtocolWorksheetEntry = worksheet; } } if (ProtocolWorksheetEntry == null) { // cteate new worksheet WorksheetEntry worksheet = new WorksheetEntry(); worksheet.Title.Text = LE.SubSender; worksheet.Cols = 3; worksheet.Rows = 5; // Send the local representation of the worksheet to the API for // creation. The URL to use here is the worksheet feed URL of our // spreadsheet. WorksheetFeed wsFeed = spreadsheet.Worksheets; ProtocolWorksheetEntry = myService.Insert(wsFeed, worksheet); CellFeed cellFeed = ProtocolWorksheetEntry.QueryCellFeed(); CellEntry cellEntry = new CellEntry(1, 1, DateHeader); cellFeed.Insert(cellEntry); cellEntry = new CellEntry(1, 2, MessageHeader); cellFeed.Insert(cellEntry); } // Define the URL to request the list feed of the worksheet. AtomLink listFeedLink = ProtocolWorksheetEntry.Links.FindService(GDataSpreadsheetsNameTable.ListRel, null); // Fetch the list feed of the worksheet. ListQuery listQuery = new ListQuery(listFeedLink.HRef.ToString()); ListFeed listFeed = myService.Query(listQuery); string Message = string.Format("{0}\n{1}", LE.Title, LE.Message); // Create a local representation of the new row. ListEntry row = new ListEntry(); row.Elements.Add(new ListEntry.Custom() { LocalName = DateHeader, Value = DateTime.Now.ToString() }); row.Elements.Add(new ListEntry.Custom() { LocalName = MessageHeader, Value = Message }); // Send the new row to the API for insertion. myService.Insert(listFeed, row); }
public void method1() { OAuth2Parameters parameters = (OAuth2Parameters)Session["para"]; if (!string.IsNullOrEmpty(Request.QueryString["Code"])) { parameters.AccessCode = Request.QueryString["Code"].ToString();// = Console.ReadLine(); OAuthUtil.GetAccessToken(parameters); // //parameters.AccessToken= credential.Token.AccessToken; // string accessToken = parameters.AccessToken; Console.WriteLine("OAuth Access Token: " + accessToken); GOAuth2RequestFactory requestFactory = new GOAuth2RequestFactory(null, "MySpreadsheetIntegration-v1", parameters); SpreadsheetsService service = new SpreadsheetsService("MySpreadsheetIntegration-v1"); service.RequestFactory = requestFactory; SpreadsheetQuery query = new SpreadsheetQuery(); SpreadsheetFeed feed = service.Query(query); //foreach (SpreadsheetEntry entry in feed.Entries) //{ // Console.WriteLine(entry.Title.Text); //} //SpreadsheetEntry spreadsheet = (SpreadsheetEntry)feed.Entries[0]; if (feed.Entries.Where(x => x.Title.Text == "testSS").First() != null) { SpreadsheetEntry spreadsheet = (SpreadsheetEntry)feed.Entries.Where(x => x.Title.Text == "testSS").First(); //SpreadsheetEntry spreadsheet = (SpreadsheetEntry)feed.CreateFeedEntry(); //Console.WriteLine(spreadsheet.Title.Text); //AtomTextConstruct at = new AtomTextConstruct(AtomTextConstructElementType.Title); //at.Text = "test"; //spreadsheet.Title = at; // spreadsheet.Worksheets.AddExtension(requestFactory); var t = (Home.JSONClass)Session["UserDataGet"]; List <object> lists = new List <object>() { t.email, t.name, t.given_name, t.family_name, t.picture, t.Gender, t.locale }; // Get the first worksheet of the first spreadsheet. // TODO: Choose a worksheet more intelligently based on your // app's needs. WorksheetFeed wsFeed = spreadsheet.Worksheets; WorksheetEntry worksheet = (WorksheetEntry)wsFeed.Entries[0]; // Define the URL to request the list feed of the worksheet. AtomLink listFeedLink = worksheet.Links.FindService(GDataSpreadsheetsNameTable.ListRel, null); // Fetch the list feed of the worksheet. ListQuery listQuery = new ListQuery(listFeedLink.HRef.ToString()); ListFeed listFeed = service.Query(listQuery); CellQuery cellQuery = new CellQuery(worksheet.CellFeedLink); CellFeed cellFeed = service.Query(cellQuery); CellEntry cellEntry = new CellEntry(1, 1, "email"); cellFeed.Insert(cellEntry); cellEntry = new CellEntry(1, 2, "name"); cellFeed.Insert(cellEntry); cellEntry = new CellEntry(1, 3, "givenname"); cellFeed.Insert(cellEntry); cellEntry = new CellEntry(1, 4, "familyname"); cellFeed.Insert(cellEntry); cellEntry = new CellEntry(1, 5, "picture"); cellFeed.Insert(cellEntry); cellEntry = new CellEntry(1, 6, "gender"); cellFeed.Insert(cellEntry); cellEntry = new CellEntry(1, 7, "locale"); cellFeed.Insert(cellEntry); // Create a local representation of the new row. ListEntry row = new ListEntry(); row.Elements.Add(new ListEntry.Custom() { LocalName = "email", Value = t.email }); row.Elements.Add(new ListEntry.Custom() { LocalName = "name", Value = t.name }); row.Elements.Add(new ListEntry.Custom() { LocalName = "givenname", Value = t.given_name }); row.Elements.Add(new ListEntry.Custom() { LocalName = "familyname", Value = t.family_name }); row.Elements.Add(new ListEntry.Custom() { LocalName = "picture", Value = t.picture }); row.Elements.Add(new ListEntry.Custom() { LocalName = "gender", Value = t.Gender }); row.Elements.Add(new ListEntry.Custom() { LocalName = "locale", Value = t.locale }); // Send the new row to the API for insertion. service.Insert(listFeed, row); } Response.Redirect("Home.aspx?access_token=" + Session["access_token"].ToString()); } }