Help us understand the problem. What is going on with this article?

次世代メールプラットフォームInboxを試してみた。

More than 5 years have passed since last update.

先日、次世代メールプラットフォームInboxが発表されましたね。以前、メールを扱ったアプリをつくろうと思いましたが、IMAPなどの仕様にハマって断念したことがあり、これは、と思い期待しているので早速試してみました。

開発の理由がクールですね。

GrinichはInboxを開発の狙いについて、「私はMITでメールのツールについて論文を書いたときにメール・アプリの開発がいかに難しいか気づいた。その根本的な原因は、IMAP、MIME、文字のエンコードといったインフラにあった。Inboxはそうした問題をデベロッパーに代わって解決する」
DropboxのOBらが次世代メールのプラットフォーム、Inboxを発表―Gmail APIに似ているが汎用 - TechCrunch

inboxとは?

inboxは、古い仕様で作られたIMAPメールを簡単に扱うためのラッパーです。inboxはREST APIに対応しており、メールデータを取得、修正、送信といったことが簡単にできます。また、レスポンスは全てJSONなので、扱いやすいです。

現在のステータス(2014/7/10時点)

Inbox SDK(JavaScript版とiOS版)を利用したデモ・アプリがいくつかGitHubで公開されています。また、開発者向けに、Sync Engineが公開されており、これをローカル開発環境で立ち上げて、開発を始めることが出来ます。(将来的には、Sync Engineはinboxによってホストされる予定)

そこで!

今日はこの、Sync Engineをローカルで立ち上げて、APIを叩いてみる、というところまでやってみたいと思います。

ざっとした流れとしては、GitHubにアップされている、Sync Engineをローカルに持ってきて、それをVagrantで立ち上げることができるので、Vagrantで立ち上げて、初期設定後、自分のGmailアカウントと同期し、apiの口を開けて、curlで叩いてみる、という流れです。

手順

Install VirtualBox

VirtualBoxが入っていない人は入れましょう。

Install Vagrant

Vagrantってなんぞや、という人は http://dev.classmethod.jp/server-side/virtual-box-vagrant/

Install Inbox

git clone git@github.com:inboxapp/inbox.git

とりあえず、デスクトップでやりました。

cd inbox     # inboxって何かと使う名前なので困りますよね。
vagrant up   # Vagrantを立ち上げて。
vagrant ssh  # Ubuntuにつながります。
cd /vagrant  # sshしたら、ルートにvagrantフォルダがいるので移動。
bin/inbox-start

Sync Engineが立ち上がるのか・・・な。フォアグラウンドで起動します。ログが見たかったので、別タブでもう一つVagrantを立ち上げました。別タブで

cd inbox
vagrant ssh
cd /vagrant
bin/inbox-auth [YOUR_ACCOUNT]@gmail.com

同期したいメールアドレスを入力します。すると、「To authorize Inbox, visit this url and follow the directions:」というレスポンスが返ってくるので、それ以下のURLをブラウザで立ち上げます。するとGoogleの認証画面が立ち上がるので、承認します。すると認証コードが表示されるのでそれをコピー。コマンドラインの「Enter authorization code:」のところに貼り付けて返してあげます。すると認証が完了します。Googleアカウントのパスワードじゃないことに注意です。

bin/inbox-sync start [YOUR_ACCOUNT]@gmail.com

これをすると、inboxとauthしたGmailの同期が開始されます。「Note that an initial sync can take quite a while depending on how much mail you have.」と書かれているように、最初の同期は時間がかかるようです。自分は60000通ほどありましたが、45分で5000通くらいです(その間にこれを書いています。)APIのテストをする上ではもう次に進んで問題ないので、放置プレイで行きましょう。

bin/inbox-api

これでAPIの口が開きます。

curl http://localhost:5555/n/

さあ・・・叩いてみると、

[
    {
        "account": "hogehogehoge",
        "email_address": "hogehoge@gmail.com",
        "id": "hogehogehogehoge",
        "namespace": "hogehogehogehoge",
        "object": "namepace",
        "provider": "gmail"
    }
]

とJSONでレスポンスが返ってきましたよ!ヮ(゚д゚)ォ!このnamespaceというのが認証したアカウントを識別するものとなります。

あとは、APIのレファレンス通りに叩いてみると・・・

curl http://localhost:5555/n/<namespace>/tags
[
    {
        "id": "replied",
        "name": "replied",
        "namespace": "hogehogehoge",
        "object": "tag"
    },
    {
        "id": "all",
        "name": "all",
        "namespace": "hogehogehoge",
        "object": "tag"
    },
    {
        "id": "sent",
        "name": "sent",
        "namespace": "hogehogehoge",
        "object": "tag"
    },
    {
        "id": "inbox",
        "name": "inbox",
        "namespace": "hogehogehoge",
        "object": "tag"
    }...
]

tagの一覧が取れたり・・・メッセージを取得できたり、送信したりと色々なことができます。

楽しみですね!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした