evernote ウェブサービスapi
DESCRIPTION
Evernote Developer Meetup, 2011/11/10TRANSCRIPT
ウェブサービスAPI加藤文彦 (@fumi1)
Evernote Developer Meetup 2011/11/10
http://gihyo.jp/dev/serial/01/evernote_api
プログラムの手順1. 認証
• UserStore: ユーザ名とパスワード
• OAuth: OAuth認証
2. データアクセス
• NoteStore
String userStoreUrl = "https://sandbox.evernote.com/edam/user";THttpClient userStoreTransport = new THttpClient(userStoreUrl);TBinaryProtocol userStoreProtocol = new TBinaryProtocol(userStoreTransport);UserStore.Client userStore = new UserStore.Client(userStoreProtocol);......
AuthenticationResult authResult = null;try { authResult = userStore.authenticate(username, password, consumerKey, consumerSecret);} catch (EDAMUserException ex) { String parameter = ex.getParameter(); EDAMErrorCode errorCode = ex.getErrorCode();......}
String authToken = authResult.getAuthenticationToken();
UserStore
https://sandbox.evernote.com
userStoreUrl = "https://sandbox.evernote.com/edam/user"userStoreTransport = Thrift::HTTPClientTransport.new(userStoreUrl)userStoreProtocol = Thrift::BinaryProtocol.new(userStoreTransport)userStore = Evernote::EDAM::UserStore::UserStore::Client.new(userStoreProtocol)
Java
Ruby
String userStoreUrl = "https://sandbox.evernote.com/edam/user";THttpClient userStoreTransport = new THttpClient(userStoreUrl);TBinaryProtocol userStoreProtocol = new TBinaryProtocol(userStoreTransport);UserStore.Client userStore = new UserStore.Client(userStoreProtocol);
NoteStore
User user = authResult.getUser();String shardId = user.getShardId();String noteStoreUrl = "https://sandbox.evernote.com/edam/note/" + shardId;THttpClient noteStoreTransport = new THttpClient(noteStoreUrl);TBinaryProtocol noteStoreProtocol = new TBinaryProtocol(noteStoreTransport);noteStore = new NoteStore.Client(noteStoreProtocol);
ノートブック
List notebooks = noteStore.listNotebooks(authToken);for (Notebook notebook : notebooks) { System.out.println("Notebook: " + notebook.getName());}
ノートの作成
Note note = new Note();note.setTitle("テストノート");String content = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<!DOCTYPE en-note SYSTEM \"http://xml.evernote.com/pub/enml2.dtd\">" + "<en-note>新しいノートを作りました</en-note>";note.setContent(content);Note createdNote = noteStore.createNote(authToken, note);System.out.println("GUID: " + createdNote.getGuid());
画像の保存Resource resource = new Resource();resource.setData(data);resource.setMime("image/jpeg");
Note note = new Note();note.setTitle("画像ノート");note.addToResources(resource);
String content = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<!DOCTYPE en-note SYSTEM \"http://xml.evernote.com/pub/enml2.dtd\">" + "<en-note><p>このノートは画像を含んでいます</p>" + "<en-media type=\"image/jpeg\" hash=\"" + EDAMUtil.bytesToHex(resource.getData().getBodyHash()) + "\"/>" + "</en-note>";note.setContent(content);Note createdNote = noteStore.createNote(authToken, note);
Android開発環境
http://discussion.evernote.com
http://discussion.evernote.com/forum/61-evernote-for-developers/