public void Run() { // Real applications authenticate with Evernote using OAuth, but for the // purpose of exploring the API, you can get a developer token that allows // you to access your own Evernote account. To get a developer token, visit // https://sandbox.evernote.com/api/DeveloperToken.action //String authToken = "your developer token"; String authToken = Properties.Settings.Default.AuthToken; if (authToken == "your developer token") { Console.WriteLine("Please fill in your developer token"); Console.WriteLine("To get a developer token, visit https://sandbox.evernote.com/api/DeveloperToken.action"); throw new ApplicationException(); } // Initial development is performed on our sandbox server. To use the production // service, change "sandbox.evernote.com" to "www.evernote.com" and replace your // developer token above with a token from // https://www.evernote.com/api/DeveloperToken.action String evernoteHost = "sandbox.evernote.com"; Uri userStoreUrl = new Uri("https://" + evernoteHost + "/edam/user"); TTransport userStoreTransport = new THttpClient(userStoreUrl); TProtocol userStoreProtocol = new TBinaryProtocol(userStoreTransport); UserStore.Client userStore = new UserStore.Client(userStoreProtocol); bool versionOK = userStore.checkVersion("Evernote EDAMTest (C#)", Evernote.EDAM.UserStore.Constants.EDAM_VERSION_MAJOR, Evernote.EDAM.UserStore.Constants.EDAM_VERSION_MINOR); Console.WriteLine("Is my Evernote API version up to date? " + versionOK); if (!versionOK) { return; } // Get the URL used to interact with the contents of the user's account // When your application authenticates using OAuth, the NoteStore URL will // be returned along with the auth token in the final OAuth request. // In that case, you don't need to make this call. String noteStoreUrl = userStore.getNoteStoreUrl(authToken); TTransport noteStoreTransport = new THttpClient(new Uri(noteStoreUrl)); TProtocol noteStoreProtocol = new TBinaryProtocol(noteStoreTransport); NoteStore.Client noteStore = new NoteStore.Client(noteStoreProtocol); mAuthToken = authToken; mNoteStore = noteStore; }
public static void Main(string[] args) { // Developer token for Evernote API String authToken = "S=s1:U=2261f:E=13eccfa5d71:C=13775493171:P=1cd:A=en-devtoken:H=fe7ee8dac619c7d380a0f9f3731a8698"; String evernoteHost = "sandbox.evernote.com"; Uri userStoreUrl = new Uri("https://" + evernoteHost + "/edam/user"); TTransport userStoreTransport = new THttpClient(userStoreUrl); TProtocol userStoreProtocol = new TBinaryProtocol(userStoreTransport); UserStore.Client userStore = new UserStore.Client(userStoreProtocol); FNHSessionManager<NoteEntry> sessionManager = new FNHSessionManager<NoteEntry>(FNHSessionManager<NoteEntry>.DatabaseType.MySQL); FNHRepository<NoteEntry> repository = new FNHRepository<NoteEntry>(sessionManager); bool versionOK = userStore.checkVersion("Evernote EDAMTest (C#)", Evernote.EDAM.UserStore.Constants.EDAM_VERSION_MAJOR, Evernote.EDAM.UserStore.Constants.EDAM_VERSION_MINOR); Console.WriteLine("Is my Evernote API version up to date? " + versionOK); if (!versionOK) { return; } // Get the URL used to interact with the contents of the user's account // When your application authenticates using OAuth, the NoteStore URL will // be returned along with the auth token in the final OAuth request. // In that case, you don't need to make this call. String noteStoreUrl = userStore.getNoteStoreUrl(authToken); TTransport noteStoreTransport = new THttpClient(new Uri(noteStoreUrl)); TProtocol noteStoreProtocol = new TBinaryProtocol(noteStoreTransport); NoteStore.Client noteStore = new NoteStore.Client(noteStoreProtocol); // Lists all of the notebooks in the user's account with a notebook count List<Notebook> notebooks = noteStore.listNotebooks(authToken); Console.WriteLine("Found " + notebooks.Count + " notebooks:"); foreach (Notebook notebook in notebooks) { Console.WriteLine(" * " + notebook.Name); } //The offset represents the index of the first note that is to be returned int offset = 0; //maxNotes represents the number of note that is to be returned int maxNotes = 15; //NoteFilter is a struct that contains a list of criteria you can search notes for. //In this app, NoteFilter.Words will be used to return notes containing a certain string. NoteFilter filter = new NoteFilter(); Console.WriteLine(); Console.WriteLine("What word do you want to search through the notes for?"); Console.WriteLine("Enter word: "); filter.Words = Console.ReadLine(); //filter.Words = "business"; //Creates a new NoteList struct, which returns a list of individual notes out of a larger set of them NoteList noteList = new NoteList(); //This finds all notes containing the word that was given by the user noteList = noteStore.findNotes(authToken, filter, offset, maxNotes); //This stores the Guids of the notes containing the word ArrayList guidList = new ArrayList(); // For each note in the list of notes... foreach (Note fetchedNote in noteList.Notes) { //Console.WriteLine(" * " + fetchedNote.Guid); // Add guid to list guidList.Add(fetchedNote.Guid); } // For each guid in the list... foreach (String Guid in guidList) { // Get the contents of the matching notes String text = noteStore.getNoteContent(authToken, Guid); // Then split the contents by line string[] split = Regex.Split(text, "\\n"); Console.WriteLine(); int MAX = split.Length; String line1; String line2; String line3; // This for-loop cycles through each line in the array of lines and tests if the line contains the word. // If so, it sets the note Guid as well as the surrounding lines as properties to a new Entry object. for (int n = 0; n < MAX; n++) { Boolean b = split[n].Contains(filter.Words); if (b == true) { line2 = split[n]; line1 = split[n - 1]; line3 = split[n + 1]; Entry postgresEntry = new Entry(); postgresEntry.setGuid(Guid); postgresEntry.setLine1(line1); postgresEntry.setLine2(line2); postgresEntry.setLine3(line3); Console.WriteLine("Note GUID: " + postgresEntry.getGuid()); Console.WriteLine(); postgresEntry.displayLines(); postgresEntry.InsertRow(); Console.WriteLine(); //postgresEntry.getLastInsertedRow(); NoteEntry mysqlNote = new NoteEntry(); mysqlNote.Guid = Guid; mysqlNote.Line1 = line1; mysqlNote.Line2 = line2; mysqlNote.Line3 = line3; repository.Create(mysqlNote); } } } Console.WriteLine(); Console.WriteLine("These lines have been saved to a Postgresql database using ODBC."); Console.WriteLine("They have also been saved to a MySQL database using Fluent NHibernate."); Console.WriteLine(); Console.WriteLine("Which row do you want to retrieve from the MySQL database?"); String id = Console.ReadLine(); int num = int.Parse(id); NoteEntry noteEntry = repository.RetrieveById(num); Console.WriteLine("This is entry " + num + " retrieved from the MySQL database..."); Console.WriteLine(); Console.WriteLine("GUID: " + noteEntry.Guid); Console.WriteLine("Line 1: " + noteEntry.Line1); Console.WriteLine("Line 2: " + noteEntry.Line2); Console.WriteLine("Line 3: " + noteEntry.Line3); Console.WriteLine(); Console.WriteLine("Click ENTER to continue..."); Console.ReadLine(); }
public static void Main(string[] args) { // Real applications authenticate with Evernote using OAuth, but for the // purpose of exploring the API, you can get a developer token that allows // you to access your own Evernote account. To get a developer token, visit // https://sandbox.evernote.com/api/DeveloperToken.action String authToken = "your developer token"; if (authToken == "your developer token") { Console.WriteLine("Please fill in your developer token"); Console.WriteLine("To get a developer token, visit https://sandbox.evernote.com/api/DeveloperToken.action"); Console.ReadLine(); return; } // Initial development is performed on our sandbox server. To use the production // service, change "sandbox.evernote.com" to "www.evernote.com" and replace your // developer token above with a token from // https://www.evernote.com/api/DeveloperToken.action String evernoteHost = "sandbox.evernote.com"; Uri userStoreUrl = new Uri("https://" + evernoteHost + "/edam/user"); TTransport userStoreTransport = new THttpClient(userStoreUrl); TProtocol userStoreProtocol = new TBinaryProtocol(userStoreTransport); UserStore.Client userStore = new UserStore.Client(userStoreProtocol); bool versionOK = userStore.checkVersion("Evernote EDAMTest (C#)", Evernote.EDAM.UserStore.Constants.EDAM_VERSION_MAJOR, Evernote.EDAM.UserStore.Constants.EDAM_VERSION_MINOR); Console.WriteLine("Is my Evernote API version up to date? " + versionOK); if (!versionOK) { return; } // Get the URL used to interact with the contents of the user's account // When your application authenticates using OAuth, the NoteStore URL will // be returned along with the auth token in the final OAuth request. // In that case, you don't need to make this call. String noteStoreUrl = userStore.getNoteStoreUrl(authToken); TTransport noteStoreTransport = new THttpClient(new Uri(noteStoreUrl)); TProtocol noteStoreProtocol = new TBinaryProtocol(noteStoreTransport); NoteStore.Client noteStore = new NoteStore.Client(noteStoreProtocol); // List all of the notebooks in the user's account List<Notebook> notebooks = noteStore.listNotebooks(authToken); Console.WriteLine("Found " + notebooks.Count + " notebooks:"); foreach (Notebook notebook in notebooks) { Console.WriteLine(" * " + notebook.Name); } // Sample Code To Add A Notebook //Notebook newNoteBook = new Notebook(); //newNoteBook.Name = "Test Notebook"; //noteStore.createNotebook(authToken, newNoteBook); Console.WriteLine(); Console.WriteLine("Creating a note in the default notebook"); Console.WriteLine(); // To create a new note, simply create a new Note object and fill in // attributes such as the note's title. Note note = new Note(); note.Title = "Evernote Logo"; // To include an attachment such as an image in a note, first create a Resource // for the attachment. At a minimum, the Resource contains the binary attachment // data, an MD5 hash of the binary data, and the attachment MIME type. It can also // include attributes such as filename and location. ImageConverter converter = new ImageConverter(); byte[] image = (byte[])converter.ConvertTo(Resources.enlogo, typeof(byte[])); byte[] hash = new MD5CryptoServiceProvider().ComputeHash(image); Data data = new Data(); data.Size = image.Length; data.BodyHash = hash; data.Body = image; Resource resource = new Resource(); resource.Mime = "image/png"; resource.Data = data; // Now, add the new Resource to the note's list of resources note.Resources = new List<Resource>(); note.Resources.Add(resource); // To display the Resource as part of the note's content, include an <en-media> // tag in the note's ENML content. The en-media tag identifies the corresponding // Resource using the MD5 hash. string hashHex = BitConverter.ToString(hash).Replace("-", "").ToLower(); // The content of an Evernote note is represented using Evernote Markup Language // (ENML). The full ENML specification can be found in the Evernote API Overview // at http://dev.evernote.com/documentation/cloud/chapters/ENML.php note.Content = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<!DOCTYPE en-note SYSTEM \"http://xml.evernote.com/pub/enml2.dtd\">" + "<en-note>Here's the Evernote logo:<br/>" + "<en-media type=\"image/png\" hash=\"" + hashHex + "\"/>" + "</en-note>"; // Finally, send the new note to Evernote using the createNote method // The new Note object that is returned will contain server-generated // attributes such as the new note's unique GUID. Note createdNote = noteStore.createNote(authToken, note); Console.WriteLine(); Console.WriteLine("Successfully created new note with GUID: " + createdNote.Guid); Console.WriteLine(); // Share The Newly Created Note To Provide Access Using An Evernote URL // This Document Will Be Publicly Accessible. string noteKey = noteStore.shareNote(authToken, createdNote.Guid); Console.WriteLine(); Console.WriteLine("Successfully shared new note with Note Key: " + noteKey); Console.WriteLine(); // Twitter Integration try { // You Can Find Your SharedId By Sharing A Document On Your Evernote Sandbox Account // The Evernote Generated URL Will Contain This Value string sharedId = "s1"; string noteLink = "https://sandbox.evernote.com/shard/" + sharedId + "/sh/" + createdNote.Guid + "/" + noteKey; // You Will Need To Create A Twitter Developer Account For This Information. // All Of The Values Below Will Be Generated From Your Twitter Developer Account // Login In To Twitter And Use The Following URL: https://dev.twitter.com/apps // 1. Create Twitter Developer Account // 2. Create A New Application // 2. Set Access Level To Read and Write On The Application Page // 3. Generate Access Token At Bottom Of The Application Page OAuthTokens oaTokens = new OAuthTokens(); oaTokens.AccessToken = "Your Twitter Access Token Here"; oaTokens.AccessTokenSecret = "Your Twitter Access Token Secret Here"; oaTokens.ConsumerKey = "Your Twitter ConsumerKey Here"; oaTokens.ConsumerSecret = "Your Twitter ConsumerKey Here"; // Truncate Doc Title If It Is Longer Than 40 Characters string docTitle = createdNote.Title; if (docTitle.Length > 40) { docTitle.Substring(0, 40); } // Truncate Message If It Is Longer Than 140 Characters string message = "Evernote Doc - " + docTitle; if (message.Length > 140) { message = message.Substring(0, 140); } // Add URL To Tweet. Twitter Will Shorten If Neccessary message += " " + noteLink; // Update Twitter Status And Check Result For Success TwitterResponse<TwitterStatus> twStatus = TwitterStatus.Update(oaTokens, message); if (twStatus.Result.ToString().ToLower() != "success") { throw new Exception("Twitter Status Not Updated"); } Console.WriteLine(); Console.Write("Document Posted To Twitter"); Console.WriteLine(); } catch (Exception ex) { Console.Write(ex.ToString()); } Console.ReadLine(); }
public static void RunImpl(object state) { if (authToken == "your developer token") { { ShowMessage("Please fill in your devleoper token in Sample.cs"); return; } // Instantiate the libraries to connect the service TTransport userStoreTransport = new THttpClient(new Uri(UserStoreUrl)); TProtocol userStoreProtocol = new TBinaryProtocol(userStoreTransport); UserStore.Client userStore = new UserStore.Client(userStoreProtocol); // Check that the version is correct bool versionOK = userStore.checkVersion("Evernote EDAMTest (WP7)", Evernote.EDAM.UserStore.Constants.EDAM_VERSION_MAJOR, Evernote.EDAM.UserStore.Constants.EDAM_VERSION_MINOR); InvokeOnUIThread(() => ViewModel.TheViewModel.VersionOK = versionOK); Debug.WriteLine("Is my Evernote API version up to date? " + versionOK); if (!versionOK) { return; } // Get the URL used to interact with the contents of the user's account // When your application authenticates using OAuth, the NoteStore URL will // be returned along with the auth token in the final OAuth request. // In that case, you don't need to make this call. String noteStoreUrl = userStore.getNoteStoreUrl(authToken); TTransport noteStoreTransport = new THttpClient(new Uri(authResult.NoteStoreUrl)); TProtocol noteStoreProtocol = new TBinaryProtocol(noteStoreTransport); NoteStore.Client noteStore = new NoteStore.Client(noteStoreProtocol); // Listing all the user's notebook List<Notebook> notebooks = noteStore.listNotebooks(authToken); Debug.WriteLine("Found " + notebooks.Count + " notebooks:"); InvokeOnUIThread(() => notebooks.ForEach(notebook => ViewModel.TheViewModel.Notebooks.Add(notebook))); // Find the default notebook Notebook defaultNotebook = notebooks.Single(notebook => notebook.DefaultNotebook); // Printing the names of the notebooks foreach (Notebook notebook in notebooks) { Debug.WriteLine(" * " + notebook.Name); } // Listing the first 10 notes in the default notebook NoteFilter filter = new NoteFilter { NotebookGuid = defaultNotebook.Guid }; NoteList notes = noteStore.findNotes(authToken, filter, 0, 10); InvokeOnUIThread(() => notes.Notes.ForEach(note => ViewModel.TheViewModel.Notes.Add(note))); foreach (Note note in notes.Notes) { Debug.WriteLine(" * " + note.Title); } // Creating a new note in the default notebook Debug.WriteLine("Creating a note in the default notebook: " + defaultNotebook.Name); Note newNote = new Note { NotebookGuid = defaultNotebook.Guid, Title = "Test note from EDAMTest.cs", Content = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<!DOCTYPE en-note SYSTEM \"http://xml.evernote.com/pub/enml2.dtd\">" + "<en-note>Here's an Evernote test note<br/>" + "</en-note>" }; Note createdNote = noteStore.createNote(authToken, newNote); ShowMessage("Successfully created new note with GUID: " + createdNote.Guid); }
public static void Main(string[] args) { // -------------------------------------------------- // UserStoreオブジェクト作成 // -------------------------------------------------- // Real applications authenticate with Evernote using OAuth, but for the // purpose of exploring the API, you can get a developer token that allows // you to access your own Evernote account. To get a developer token, visit // https://sandbox.evernote.com/api/DeveloperToken.action String authToken = "your developer token"; if (authToken == "your developer token") { Console.WriteLine("Please fill in your developer token"); Console.WriteLine("To get a developer token, visit https://sandbox.evernote.com/api/DeveloperToken.action"); return; } // Initial development is performed on our sandbox server. To use the production // service, change "sandbox.evernote.com" to "www.evernote.com" and replace your // developer token above with a token from // https://www.evernote.com/api/DeveloperToken.action String evernoteHost = "sandbox.evernote.com"; Uri userStoreUrl = new Uri("https://" + evernoteHost + "/edam/user"); TTransport userStoreTransport = new THttpClient(userStoreUrl); TProtocol userStoreProtocol = new TBinaryProtocol(userStoreTransport); UserStore.Client userStore = new UserStore.Client(userStoreProtocol); // -------------------------------------------------- // バージョンチェック // -------------------------------------------------- bool versionOK = userStore.checkVersion("Evernote EDAMTest (C#)", Evernote.EDAM.UserStore.Constants.EDAM_VERSION_MAJOR, Evernote.EDAM.UserStore.Constants.EDAM_VERSION_MINOR); Console.WriteLine("Is my Evernote API version up to date? " + versionOK); if (!versionOK) { return; } // -------------------------------------------------- // NoteStoreオブジェクト作成 // -------------------------------------------------- // Get the URL used to interact with the contents of the user's account // When your application authenticates using OAuth, the NoteStore URL will // be returned along with the auth token in the final OAuth request. // In that case, you don't need to make this call. String noteStoreUrl = userStore.getNoteStoreUrl(authToken); TTransport noteStoreTransport = new THttpClient(new Uri(noteStoreUrl)); TProtocol noteStoreProtocol = new TBinaryProtocol(noteStoreTransport); NoteStore.Client noteStore = new NoteStore.Client(noteStoreProtocol); // -------------------------------------------------- // ノートブック情報取得 // -------------------------------------------------- // List all of the notebooks in the user's account List<Notebook> notebooks = noteStore.listNotebooks(authToken); Console.WriteLine("Found " + notebooks.Count + " notebooks:"); foreach (Notebook notebook in notebooks) { Console.WriteLine(" * " + notebook.Name); } // -------------------------------------------------- // ノート作成(添付ファイルあり) // -------------------------------------------------- Console.WriteLine(); Console.WriteLine("Creating a note in the default notebook"); Console.WriteLine(); // To create a new note, simply create a new Note object and fill in // attributes such as the note's title. Note note = new Note(); note.Title = "Test note from EDAMTest.cs"; // To include an attachment such as an image in a note, first create a Resource // for the attachment. At a minimum, the Resource contains the binary attachment // data, an MD5 hash of the binary data, and the attachment MIME type. It can also // include attributes such as filename and location. ImageConverter converter = new ImageConverter(); byte[] image = (byte[])converter.ConvertTo(Resources.enlogo, typeof(byte[])); byte[] hash = new MD5CryptoServiceProvider().ComputeHash(image); Data data = new Data(); data.Size = image.Length; data.BodyHash = hash; data.Body = image; Resource resource = new Resource(); resource.Mime = "image/png"; resource.Data = data; // Now, add the new Resource to the note's list of resources note.Resources = new List<Resource>(); note.Resources.Add(resource); // To display the Resource as part of the note's content, include an <en-media> // tag in the note's ENML content. The en-media tag identifies the corresponding // Resource using the MD5 hash. string hashHex = BitConverter.ToString(hash).Replace("-", "").ToLower(); // The content of an Evernote note is represented using Evernote Markup Language // (ENML). The full ENML specification can be found in the Evernote API Overview // at http://dev.evernote.com/documentation/cloud/chapters/ENML.php note.Content = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<!DOCTYPE en-note SYSTEM \"http://xml.evernote.com/pub/enml2.dtd\">" + "<en-note>Here's the Evernote logo:<br/>" + "<en-media type=\"image/png\" hash=\"" + hashHex + "\"/>" + "</en-note>"; // Finally, send the new note to Evernote using the createNote method // The new Note object that is returned will contain server-generated // attributes such as the new note's unique GUID. Note createdNote = noteStore.createNote(authToken, note); Console.WriteLine("Successfully created new note with GUID: " + createdNote.Guid); }
private string GetNoteStoreUrl(string authToken) { var transport = new THttpClient(new Uri(_userStoreUrl)); var protocol = new TBinaryProtocol(transport); var userStore = new UserStore.Client(protocol); return userStore.getNoteStoreUrl(authToken); }
/*private ProgressStatusClass ProgressStatus;*/ public frmMain() { InitializeComponent(); setWorkingMode(true); lblInfo.Text = "Loading..."; this.Show(); this.Cursor = Cursors.WaitCursor; Application.DoEvents(); //Registre = Registry.CurrentUser.CreateSubKey(@"Software\Calexo\CaMuMa"); Registre = Registry.CurrentUser.OpenSubKey(@"Software\Calexo\CaMuMa", true); if (Registre == null) Registre = Registry.CurrentUser.CreateSubKey(@"Software\Calexo\CaMuMa"); myParams = new Parameters(); loadParams(); //ProgressStatus = new ProgressStatusClass(); userStoreUrl = new Uri(edamBaseUrl + "/edam/user"); userStoreTransport = new THttpClient(userStoreUrl); userStoreProtocol = new TBinaryProtocol(userStoreTransport); userStore = new UserStore.Client(userStoreProtocol); sFolderList = new String[65535]; Application.DoEvents(); bool versionOK = userStore.checkVersion("CaMuMa", Evernote.EDAM.UserStore.Constants.EDAM_VERSION_MAJOR, Evernote.EDAM.UserStore.Constants.EDAM_VERSION_MINOR); //Console.WriteLine("Is my EDAM protocol version up to date? " + versionOK); Application.DoEvents(); if (!versionOK) { MessageBox.Show("Version KO"); } /*else { //lblInfo.Text = "Ready..."; }*/ userStoreProt = new TBinaryProtocol(new THttpClient(userStoreUrl)); userStore = new UserStore.Client(userStoreProt, userStoreProt); try { notestoreUrl = new Uri(userStore.getNoteStoreUrl(myParams.DevKey)); // Set up the NoteStore client noteStoreTrans = new THttpClient(notestoreUrl); //noteStoreTrans.setCustomHeader("User-Agent", "Calexo CaMuMa"); //noteStoreTrans.CustomHeaders.Add( noteStoreProt = new TBinaryProtocol(noteStoreTrans); noteStore = new NoteStore.Client(noteStoreProt, noteStoreProt); authToken = myParams.DevKey; notebooks = noteStore.listNotebooks(authToken); Console.WriteLine("Found " + notebooks.Count + " notebooks"); //musicNotebook = notebooks[0]; cmbNotebook.Items.Clear(); foreach (Notebook notebook in notebooks) { // Console.WriteLine(" * " + notebook.Name); cmbNotebook.Items.Add(notebook.Name); //if (notebook.DefaultNotebook) if (notebook.Name == myParams.Notebook) { musicNotebook = notebook; cmbNotebook.Text = notebook.Name; } } Application.DoEvents(); tags = noteStore.listTags(authToken); Console.WriteLine("Found " + tags.Count + " tags"); lblInfo.Text = "Ready !"; setWorkingMode(false); } catch (Evernote.EDAM.Error.EDAMUserException e) { //mes e.ErrorCode; lblInfo.Text = "ERREUR : " + e.ErrorCode; setWorkingMode(false); btnGo.Enabled = false; } this.Cursor = DefaultCursor; }