AndroidでつくるEvernote連携アプリ

第1回 本連載の目的, Evernote APIについて

この記事を読むのに必要な時間:およそ 2 分

皆さまこんにちは, 赤木と申します。

本連載では,主にAndroidを中心としてEvernoteの提供する各種APIの紹介と具体的な実装について説明をしていく予定です。これまでにも技評ではEvernote APIについての記事を掲載してきまたが, カバーされていない部分やAPI側の仕様に修正があって内容が古くなってしまった部分があったり, また新たな機能も追加されていますので, ここで再度全体を俯瞰したいと思います。

今回は第1回ということで, Evernote APIの概略と, この連載でカバー予定の内容について記載します。

Evernoteについて

Evernoteはユーザがクラウド上にノートを作成して保存, 共有することのできるWebサービスです。ノートには画像やpdf, 音声なども添付することができ, 公式で提供されているWebクリッパーを使うとPCのブラウザ上から見ているサイトの内容をそのままノートに保存することもできます。

さらにAPIを一般に公開することで, 誰でもEvernoteと連携するアプリを開発することを可能としており, 自らのプラットフォームとしての位置づけも強化しています。

優れた連携アプリについてはEvernote自身もDevcupの開催, 自社サイトでの公開などプレゼンスを上げる仕組みを用意しており, またEvernoteの6,500万人を超えるユーザ基盤にリーチできることを考えると, EvernoteのAPIを活用してEvernoteと連携したアプリを開発するメリットは大きいのではないでしょうか。

Evernoteの開発者向けの公式情報は以下のデベロッパーサイトからアクセスできます。

ここでも簡単なチュートリアルやドキュメントの閲覧ができ, 連携アプリを作るのに必要なAPIキー等の発行もこちらから行います。またEvernoteの基本的な使用方法や連携アプリ作りの指針等については以前の連載「[公式]Evernote API徹底活用レシピにも記載がありますのでこちらも参照ください。

Evernote APIの概要

EvernoteのAPIは大きく分けて以下の2種類があります。

  • ローカルAPI
  • クラウドAPI

ローカルAPIはPC, スマートフォンといったクライアント内で動作するもので, 既に同じクライアント内にEvernoteのアプリケーションがインストールされていることが前提です。ローカルAPIを利用することで自分のアプリからEvernoteのアプリケーションを呼び出し, 必要な処理を行ってもらうというものです。

現在提供されているローカルAPIはAndroid, Windows,Macのクライアントを対象としており, AndroidではIntentとよばれるアプリ間連携機能を用いることで実現しています。具体的な実装は以降の章で解説します。

Androidにおける代表的なローカルAPIの例

Androidにおける代表的なローカルAPIの例

画像ビューアなどで画像を「シェア」しようとすると, アプリケーションの候補にEvernoteが表示される。Evernoteを選択すると, 画像が添付された新規ノートを開いた状態でEvernoteのアプリが立ち上がる。

一方, クラウドAPIはEvernoteアプリケーションに処理を委ねるローカルAPIとは異なり, 自身で直接Evernoteのサーバと通信して必要な処理を行うためのAPIです。Evernoteの公式クライアントもクラウドAPIを使ってサービスを提供していますので, ローカルAPIでは実現できないような複雑な機能を実現したい, Evernoteのクライアントに頼らず自身のアプリで処理を完結したいという時にはこちらを利用することになります。

本連載でカバーする内容について

本連載では, Androidを題材にEvernoteの提供する以下の機能の概要と, 具体的な実装と注意点を見ていきたいと思います。

  • Evernoteへの認証
  • ノートブック, ノートの情報取得, ノートの新規作成
  • ノートの編集, リソース等付加情報の追加
  • 読み取り専用ノートについて
  • ノートの検索
  • ノートの共有
  • ノートブックの共有
  • EvernoteビジネスのAPIについて
  • リマインダーについて
  • ローカルAPIについて

事前準備

次回以降で実際にAndroidを使ったEvernote連携アプリの開発を始めますので, 事前準備として以下の2つを行っておいてください。

  1. APIキーの取得
  2. サンドボックスのアカウント取得

1. APIキーの取得

EvernoteのデベロッパーサイトからAPIキーを取得しておいてください。

右上の「APIキーを取得」を押すとフォームが表示されます。⁠所属する組織」は, 個人であれば"Individual"等と入れておきましょう。またAPI権限は自分のアプリで用いたい機能に応じて使用するAPIの権限を設定できるものですが, 今回はノートの更新などベーシックアクセスの権限を超えた機能も扱いますので「フルアクセス」にしてください。

最後にライセンスに同意のチェックを入れて「キーの申請」ボタンを押下すると,

  • Consumer Key
  • Consumer Secret

の2つの情報を取得できます。

これらの情報は大切に保存しておき, 他人に公開しないようにしてください。

APIキー申請のフォーム

APIキー申請のフォーム

2. サンドボックスのアカウント取得

APIキーの2つの情報を使って, Evernoteの開発用サーバ(サンドボックス)にアクセスすることができます。

次章からのアプリ開発では, サンドボックスを使用して実際のアプリの動作を確認しますので, サンドボックスで自身のアカウントが無い方は以下のリンクから作成しておいてください。

サンドボックスは開発用に特化した環境ですので, 普段ユーザとして利用されている商用サーバのご自身のアカウントとは独立したものです。商用でアカウントをお持ちでも, 開発時にはサンドボックスのアカウントを別に登録する必要があり,ます。

Evernote連携アプリの開発は, まずサンドボックスを使ってアプリを完成させ, 公開前にEvernoteに連絡してAPIキーを商用サーバ(プロダクション)でも有効化=アクティベートしてもらう必要があります。

以降の機能追加や修正時も, まずサンドボックスで試験してから商用版にリリースするようにしましょう。

アクティベートの申請は開発者用サポートページから可能です。

現段階ではこれからアプリを作るところですので, アクティベートの申請は必要ありません。

ここまでできたら,いよいよ次章から実際の開発に入りたいと思います。

参考サイト
Evernote開発者向けサイト【公式】
http://dev.evernote.com/intl/jp/

著者プロフィール

赤木法生(あかぎのりお)

日本の通信事業者所属でシステム開発に従事。大規模開発のSEを担当しつつ,個人でAndroidやスマホ向けAPIのサーバサイドプログラミングを行っています。メインはAndroidでPython,JavaScriptも触り中。現在はシリコンバレーのベンチャー企業にてトレーニー中。開発者向けのSDKと格闘しています。

https://github.com/redtree1112

バックナンバー

AndroidでつくるEvernote連携アプリ

コメント

コメントの記入