IFTTTでカメラロール内の画像をBox.netに自動アップロード

iPhoneでは「Dropbox」、iPadでは「OneDrive」を使って写真やスクリーンショットをオンラインストレージにアップロードして管理しています。

iPhoneiPadでサービスをわけているのは、混ざると管理が地味に面倒だからです。

そんな住み分けで運用していたのですが、先日、OneDriveの仕様が改悪されました。

OneDriveの無料プランの容量が5GBに削減(カメラロールボーナスも廃止)

今後もどんな変更がされるかわからないので、早々に乗り換え先を探しました。

容量的にはBox.net(50GB)が最も相応しいのですが、こちらのアプリにはカメラロールの自動アップロード機能がありません。

ということで、IFTTTを使った自動アップロードにチャレンジしてみました。

IFTTT

IFTTT - Make Your Work Flow

「IFTTT」とは、Webサービスをはじめとした数多くのシステムを相互に連携するための仲介役をこなすサービスです。

片方のサービスの何らかの"きっかけ”をトリガーとし、もう片方のサービスに"行動"を働きかけるという仕組みです。

今回は、「iPadのカメラロールに写真が保存される」を"きっかけ"に、「Box.netに写真をアップロードする」を"行動"とするレシピを作成します。

カメラロール内の画像をBox.netに自動アップロード

iOSデバイスのカメラロール内の画像を"きっかけ”とする場合、iOS向けのIFTTTアプリをインストールする必要があります。

IF by IFTTT

IF by IFTTT

  • IFTTT
  • Productivity
  • Free

現在のバージョンは[2.7.0]で、インストールにはiOS 8.0以上が必須となります。

今回はiPadにインストールしました。これを機にiOS 9.1までアップデートしました。

 

インストール後、Sign Inを済ませると以下のような画面になります。

ifttt_1_151107

IFTTTでは、他のユーザが作ったレシピを取り込んで利用することも可能です。

右上の「Browse」をタップすると管理画面に切り替わります。ここからレシピを作成することができます。

ifttt_2_151107

右上の「Manage」の隣にある「」をタップしてレシピを新規作成していきましょう。

レシピ

ifttt_3_151107

レシピ作成のスタート画面です。

IFTTTは「if this then that」というコンセプトのサービスで、thisには"きっかけ"、thatには"行動"が当てはまります。

まずは"きっかけ"です。ifの隣にある水色の「+」をタップしましょう。

ifttt_4_151107

連携の"きっかけ"となるサービスたちのアイコンが現れます。

今回はカメラロールを"きっかけ"とするため、「iOS Photos」を選択します。カメラロールで何をしたときにトリガーとするかを選べます。

ifttt_5_151107

以下のような項目が表示されます。

  • New photo added to album
  • Any new photo
  • New photo with the front camera
  • New photo with the rear camera
  • New screenshot
  • New photo taken in area

全ての写真をアップロードしたいため「Any new photo」を選択しましたが、スクリーンショットだけや前面カメラ、背面カメラで撮った写真だけ、といった設定も可能なようですね。

設定する際にはIFTTTからカメラロールへのアクセスを要求されます。当然ですが、承認しないと自動アップロード時にIFTTTが写真へアクセスできません。

設定が完了すると以下のような画面になります。

ifttt_6_151107

IFTTT連携の"きっかけ"にカメラロールが設定されました。続けて、連携の"行動”も設定していきます。thenの隣の赤色の「+」をタップしましょう。

ifttt_7_151107

IFTTT連携の"行動"となるサービスを選択します。

今回は表題の通り「Box.net」に連携させます。「Box」を選択しましょう。

ifttt_8_151107

以下のような項目が表示されます。

  • Upload file from URL
  • Create a text file
  • Append to a text file

カメラロールの写真をアップロードするため「Upload file from URL」を選択します。テキストファイルを作ったり加筆したりもできるみたいですね。

こちらも、Box.netのアクセス許可を要求されます。起動したSafariでアカウント情報を入力し、Box.net側で承認してあげましょう。

ifttt_9_151107

承認したら、Box.netにアップロードする際の設定をします。

デフォルトでは「File URL」にPrivatePhotoURL、「File name」にTakenDate、「Box folder path」にIFTTT/iOS Photos/photo/AlbumNameが設定されています。

この設定をそのまま使用した場合、カメラロールの写真が撮影日付のファイル名で「IFTTT/photo」というフォルダにカメラロール側のアルバム名フォルダを作成し、「November 07, 2015 at 0510PM.png」といったファイル名でアップロードされます。

今回はそのまま使用しましたが、アップロード先のフォルダ名などは適宜変更するとよいでしょう。ただ、ファイル名に関してはそこまで自由なフォーマットには対応していなさそうです。

 

あとは設定を完了し、実際に動かしてみます。

Box.net側を見ると、ブログ用に取得していたスクリーンショットがアップロードされています。

ifttt_10_151107

 

残念ながら、IFTTTで連携できるのは、このレシピを作成し動かし始めた後に撮った写真のみが対象です。

それ以前に撮った写真についてはトリガーが発動しませんので、何らかの形で別途アップロードする必要があります。

仕方がないので、それらの写真についてはOneDrive側の自動アップロード機能を使ってOneDrive上にアップロードし、WebDAV経由でBox.netに手動コピーしています。あと5時間くらいかかるそうです。うげぇ…

 

なお、このIFTTTを使った自動アップロードには、当然ながらIFTTTアプリを使用しています。

そのため、この連携にはIFTTTアプリが起動している必要があるようです。ただ、バックグラウンド起動でも問題なさそうです。

DropboxもOneDriveも自動アップロード時にはアプリを起動する必要があったので当然といえば当然ですが、忘れないようにしましょう。

 

まだ試行回数が少ないですが、アップロード自体は正常にできており、連携されない写真や重複して連携された写真などは今のところありません。

 

ということで、何気に初のIFTTT連携体験でした。

気が向いたらTwitterEvernote連携もやるかもしれません。既存レシピがたくさんありそうですが。