前回に続いてPhoto Gallery Publishing Plug-in Platformについてです。サンプルとしてLiveフォト ギャラリーなどで使える はてなフォトライフへ写真をアップロードするプラグインを作ります。今回は実際にプラグインのコードの記述しアップロードができるところまで作成します。
プラグインの処理
コードを書く前に,プラグインが行う処理を確認しておきましょう。Liveアプリケーション上でひとつ以上の動画像を選択した状態で,アップロードメニュー(※1)からアップロード先を選択すると,対象のプラグインの処理が実行されます。アップロード先の選択からアップロード完了までに,Liveアプリケーションとプラグインとの間では複数回のやり取りをしています。あるアップロードに対して行われるこの一連のやり取りを,本記事中ではセッションと記載しています。
- ※1
12/16に公開されたLive フォト ギャラリーおよびLive ムービー メーカーでは「アップロード」メニューになりました。以前のBetaバージョンでは「投稿」メニューでした。
1. 設定ウィンドウの表示
プラグインは最初に設定ウィンドウを表示します。ウィンドウ表示は必須ではありませんが,通常はアップロードするサービスへの認証処理やアップロード確認などのために利用します。Flickrへのアップロードの場合は図1のようなウィンドウが用意されています。
この段階でのプラグインが,Liveアプリケーションとのやり取りによって可能な処理は以下の通りです。
- プラグイン固有の設定の参照・保存
- アップロード対象の動画像情報の参照
- セッションに必要な情報の保存
「セッションに必要な情報の保存」とは,プラグイン自身がこの後の処理に必要とする情報を保存しておくという意味です。「アップロード対象の動画像情報の参照」と「セッションに必要な情報の保存」はどちらもセッション情報の参照・編集として考えることができます。
必要な処理を終えた後,セッションの続行または中断をLiveアプリケーションに通知し次のステップへ進み(または終了し)ます。
2. 動画像のアップロード
続いて,ユーザーが選択した動画像のアップロード処理を行います。アップロード中には,図2のように進行を示すウィンドウが表示されます。このウィンドウはLiveアプリケーションが用意したものです。
この段階でのプラグインは,Liveアプリケーションとのやり取りにより以下の処理が可能です。
- アップロード対象の動画像情報の参照
- セッションに必要な情報の参照・編集・保存
- 動画像のストリームの参照
- 進行状況の通知
- ユーザーによるアップロードのキャンセル通知の受信
- ウィンドウの表示
上のふたつは設定ウィンドウ表示のときと同じくセッション情報の参照と編集です。
この処理は,アップロード対象の動画像の個数分だけ繰り返することになります。セッション内の動画像ごとにアップロードの成功・失敗をLiveアプリケーションに通知し,すべて完了すると次のステップに進みます。
3. 結果ウィンドウの表示
図3のようなアップロードの結果を示すウィンドウが最後に表示されて一連の処理は終了です。
表示されるウィンドウはLiveアプリケーションが用意したものですが,ウィンドウ中の「表示」ボタンと「詳細情報」リンクはプラグインの設定により表示・非表示が決まります。
ここでのやり取りにより可能な処理は以下の通りです。
- アップロード対象の動画像情報の参照
- セッションに必要な情報の参照
- 表示ボタン・詳細情報リンクの表示とクリック時の処理
表示ボタンと詳細情報リンクは以下の違いがあります。
- 詳細情報リンク
Liveアプリケーションを親ウィンドウとしてプラグインが用意したウィンドウを表示することができます。結果ウィンドウだけでは何枚中何枚がアップロードに成功したことのみしかユーザーはわかりません。これを補うために使用することができます。
- 表示ボタン
表示ボタンをクリックすると結果ウィンドウは閉じられます。アップロード先のサービスのWebページへ移動するために使用することが想定されています。

