/// <summary> /// Creates a new note on evernote. /// </summary> /// <param name="title"></param> public Note Create(string title, string content) { // creates the new note, sets the and content using the evernote format Note note = new Note(); note.Title = title; note.Content = String.Format(TEMPLATE_BASIC_NOTE, content); // Send the new note to Evernote. Note newnote = _Instance.createNote(_authToken, note); // return the new note with the guid and update timestamp return(newnote); }
private bool CreateNewEvernote(Note note) { Evernote.EDAM.Type.Note newNote = new Evernote.EDAM.Type.Note(); newNote = FillEvernote(note, newNote); try { _noteStore.createNote(_authToken, newNote); } catch (Exception e) { Logger.Error("[Evernote] Error Creating new Evernote :" + e + "\n EverNote: " + newNote + "\nTomboyNote: " + note); return(false); } return(true); }
private EvernoteNote APICreateNewNote(EvernoteNote note) { remoteDirty = true; var remoteNote = new Note(); remoteNote.Guid = note.ID.ToString("D"); remoteNote.Title = note.InternalTitle; remoteNote.Content = note.CreateENML(); remoteNote.TagNames = note.Tags.ToList(); remoteNote.Created = ConvertToEpochDate(note.CreationDate); remoteNote.Updated = ConvertToEpochDate(note.ModificationDate); var createdNote = nsClient.createNote(_token, remoteNote); if (createdNote.__isset.tagGuids) { note.Tags.Synchronize(ConvertTagsFromUUID(createdNote.TagGuids)); } if (createdNote.__isset.updateSequenceNum) { note.UpdateSequenceNumber = createdNote.UpdateSequenceNum; } if (createdNote.__isset.content) { note.SetTextFromENML(createdNote.Content); } if (createdNote.__isset.title) { note.InternalTitle = createdNote.Title; } if (createdNote.__isset.updated) { note.ModificationDate = ConvertFromEpochDate(createdNote.Updated); } if (createdNote.__isset.created) { note.CreationDate = ConvertFromEpochDate(createdNote.Created); } return(note); }
public static void RunImpl(DependencyObject dispatcherOwner, ViewModel viewModel) { if (authToken == "your developer token") { ShowMessage(dispatcherOwner, "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(dispatcherOwner, () => viewModel.IsVersionOk = 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(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(dispatcherOwner, () => { foreach (var notebook in notebooks) { viewModel.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(dispatcherOwner, () => { foreach (var note in notes.Notes) { viewModel.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(dispatcherOwner, "Successfully created new note with GUID: " + createdNote.Guid); }
private async void ClickedCreateNoteButton(object sender, EventArgs e) { try { string authToken = "authToken"; string evernoteHost = "sandbox.evernote.com"; string url = urlEntry.Text; if (string.IsNullOrWhiteSpace(url)) { throw new Exception("URLを入力してください。"); } Debug.WriteLine("URL=" + url); 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("InstantEverClip", Evernote.EDAM.UserStore.Constants.EDAM_VERSION_MAJOR, Evernote.EDAM.UserStore.Constants.EDAM_VERSION_MINOR); if (!versionOk) { throw new Exception("バージョン・チェックがエラーになりました。"); } var noteTitle = ""; var req = WebRequest.Create(url); var res = await req.GetResponseAsync(); using (Stream s = res.GetResponseStream()) { var htmlDoc = new HtmlDocument(); var buf = new byte[1024 * 1024]; var ms = new MemoryStream(); var len = 0; while ((len = s.Read(buf, 0, buf.Length)) > 0) { ms.Write(buf, 0, len); } buf = ms.ToArray(); var html = ""; var enc = Hnx8.ReadJEnc.ReadJEnc.JP.GetEncoding(buf, buf.Length, out html); if (enc != null) { Debug.WriteLine("HTML Encoding=" + enc.ToString()); htmlDoc.LoadHtml(html); HtmlNode titleNode = htmlDoc.DocumentNode.Descendants("title").First(); if (titleNode != null) { if (!string.IsNullOrWhiteSpace(titleNode.InnerText)) { noteTitle = titleNode.InnerText; Debug.WriteLine("noteTitle=" + noteTitle); } else { noteTitle = url; Debug.WriteLine("title tag is empty."); } } else { noteTitle = url; Debug.WriteLine("title tag is not found."); } } else { noteTitle = url; Debug.WriteLine("url is not text/html."); } } string noteStoreUrl = userStore.getNoteStoreUrl(authToken); TTransport noteStoreTransport = new THttpClient(new Uri(noteStoreUrl)); TProtocol noteStoreProtocol = new TBinaryProtocol(noteStoreTransport); NoteStore.Client noteStore = new NoteStore.Client(noteStoreProtocol); Note note = new Note(); note.Title = noteTitle; note.Attributes = new NoteAttributes { SourceURL = urlEntry.Text }; note.Content = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<!DOCTYPE en-note SYSTEM \"http://xml.evernote.com/pub/enml2.dtd\">" + "<en-note>" + noteTitle + "<br />" + urlEntry.Text + "</en-note>"; noteStore.createNote(authToken, note); Debug.WriteLine("create note succeed."); App.ShowToast(ToastNotificationType.Success, noteTitle, "ノートを作成しました。"); urlEntry.Text = string.Empty; } catch (Exception ex) { Debug.WriteLine(ex.ToString()); App.ShowToast(ToastNotificationType.Error, "エラー", ex.ToString()); } }
/// <summary> /// Evernoteに画像を送信する /// </summary> /// <param name="sendImage">送信する画像</param> /// <param name="EvernoteToken">Evernoteトークン</param> static public void SendToEvernote(List <Image> sendImages, string EvernoteToken, string evernoteNotebookName, List <string> evernoteTags, string sourceUrl) { string authToken = EvernoteToken; 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); String noteStoreUrl = userStore.getNoteStoreUrl(authToken); TTransport noteStoreTransport = new THttpClient(new Uri(noteStoreUrl)); TProtocol noteStoreProtocol = new TBinaryProtocol(noteStoreTransport); NoteStore.Client noteStore = new NoteStore.Client(noteStoreProtocol); Note note = new Note(); note.Title = DateTime.Now.ToShortDateString(); foreach (var notebook in Evernote.GetEvetnoteNotebook(EvernoteToken)) { if (notebook.Key == evernoteNotebookName) { note.NotebookGuid = notebook.Value; break; } } note.TagNames = evernoteTags; NoteAttributes attributes = new NoteAttributes(); attributes.SourceURL = sourceUrl; note.Attributes = attributes; StringBuilder content = new StringBuilder(); content.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); content.Append("<!DOCTYPE en-note SYSTEM \"http://xml.evernote.com/pub/enml2.dtd\">"); content.Append("<en-note>"); note.Resources = new List <Resource>(); foreach (var sendImage in sendImages) { ImageConverter converter = new ImageConverter(); byte[] image = (byte[])converter.ConvertTo(sendImage, 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; note.Resources.Add(resource); string hashHex = BitConverter.ToString(hash).Replace("-", "").ToLower(); content.Append("<span>"); content.Append("<en-media type=\"image/png\" hash=\""); content.Append(hashHex); content.Append("\"/>"); content.Append("</span>"); content.Append("<br/>"); } content.Append("</en-note>"); note.Content = content.ToString(); Note createdNote = noteStore.createNote(authToken, note); }
/// <summary> /// Create a new note in the account of the user with the specified developer token. /// </summary> /// <returns>true if the note was created successfully, false otherwise.</returns> public bool createNote(String developerToken) { try { try { if (!auth(developerToken)) { // This is an unrecoverable error - our protocol version is out of date return(false); } } catch (EDAMUserException eux) { // TODO - do proper error handling return(false); } THttpClient noteStoreTransport = new THttpClient(new Uri(noteStoreUrl)); noteStoreTransport.CustomHeaders[HttpRequestHeader.UserAgent.ToString()] = USER_AGENT; TProtocol noteStoreProtocol = new TBinaryProtocol(noteStoreTransport); NoteStore.Client noteStore = new NoteStore.Client(noteStoreProtocol); // The bytes of the image we want to send up to the service // In this test, we use an image hardcoded as a base64-encoded string IBuffer imageBuffer = CryptographicBuffer.DecodeFromBase64String(imgBase64); byte[] imageBytes = WindowsRuntimeBufferExtensions.ToArray(imageBuffer); HashAlgorithmProvider provider = HashAlgorithmProvider.OpenAlgorithm("MD5"); IBuffer hashBuffer = provider.HashData(imageBuffer); byte[] hash = WindowsRuntimeBufferExtensions.ToArray(hashBuffer); String hashHex = CryptographicBuffer.EncodeToHexString(hashBuffer); Data data = new Data(); data.Size = imageBytes.Length; data.BodyHash = hash; data.Body = imageBytes; Resource resource = new Resource(); resource.Mime = "image/png"; resource.Data = data; Note note = new Note(); note.Title = "Hello, World!"; note.Content = EDAM_NOTE_PREAMBLE + "<h2>This note is created by the Evernote sample code for Windows Store applications!</h2>" + "<br />" + "<en-media type=\"image/png\" hash=\"" + hashHex + "\"/>" + EDAM_NOTE_POSTAMBLE; note.Resources = new List <Resource>(); note.Resources.Add(resource); try { noteStore.createNote(authToken, note); return(true); } catch (EDAMUserException ex) { // Handle note creation failure } } catch (TApplicationException tax) { // Handle generic Thrift error } catch (TTransportException ttx) { // Handle networking error } catch (EDAMSystemException esx) { // Handle unrecoverable Evernote error (i.e., error not caused by bad user input) } return(false); }
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"); 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); } 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); }