evernote ウェブサービスapi

21
ウェブサービスAPI 加藤文彦 (@fumi1) Evernote Developer Meetup 2011/11/10

Upload: fumihiro-kato

Post on 05-Jul-2015

1.298 views

Category:

Technology


1 download

DESCRIPTION

Evernote Developer Meetup, 2011/11/10

TRANSCRIPT

Page 1: Evernote ウェブサービスAPI

ウェブサービスAPI加藤文彦 (@fumi1)

Evernote Developer Meetup 2011/11/10

Page 2: Evernote ウェブサービスAPI

http://gihyo.jp/dev/serial/01/evernote_api

Page 3: Evernote ウェブサービスAPI
Page 4: Evernote ウェブサービスAPI
Page 5: Evernote ウェブサービスAPI
Page 6: Evernote ウェブサービスAPI
Page 7: Evernote ウェブサービスAPI
Page 8: Evernote ウェブサービスAPI
Page 9: Evernote ウェブサービスAPI
Page 10: Evernote ウェブサービスAPI

プログラムの手順1. 認証

• UserStore: ユーザ名とパスワード

• OAuth: OAuth認証

2. データアクセス

• NoteStore

Page 11: Evernote ウェブサービスAPI

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

Page 12: Evernote ウェブサービスAPI

https://sandbox.evernote.com

Page 13: Evernote ウェブサービスAPI

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);

Page 14: Evernote ウェブサービスAPI

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);

Page 15: Evernote ウェブサービスAPI

ノートブック

List notebooks = noteStore.listNotebooks(authToken);for (Notebook notebook : notebooks) { System.out.println("Notebook: " + notebook.getName());}

Page 16: Evernote ウェブサービスAPI

ノートの作成

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());

Page 17: Evernote ウェブサービスAPI

画像の保存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);

Page 18: Evernote ウェブサービスAPI

Android開発環境

Page 19: Evernote ウェブサービスAPI

http://discussion.evernote.com

Page 20: Evernote ウェブサービスAPI

http://discussion.evernote.com/forum/61-evernote-for-developers/

Page 21: Evernote ウェブサービスAPI