mixi Developer Center (ミクシィ デベロッパーセンター)

mixiアプリ

mixiアプリ » 技術仕様(Graph API方式) » モバイル » アプリからフォトアップロード機能について

アプリからフォトアップロード機能について

mixiアプリからフォトアップロード機能を利用することにより、SAPが生成や加工を施した画像ファイルを、mixiアプリからユーザのかんたん公開アルバムに登録することができます。例えば、ユーザが既にmixiフォトのアルバムに登録した写真について、mixiアプリ上で加工などを行い、その結果をアルバムに再登録させることで、その加工された写真を元に友人とのコミュニケーションを生み出すことが可能です。更にその写真を見た友人がそのmixiアプリを使って新しい加工を施す・・・といった連鎖も行われるようになるでしょう。

本文書では、mixiアプリからフォトアップロード機能について、技術的な利用方法について説明いたします。

アップロードの手順

mixiアプリからフォトアップロード機能を使って画像ファイルをかんたん公開アルバムに登録するための手順は、以下となります。

  1. 登録したい画像ファイルをSAP側Webサーバ上で準備します。
  2. mixi_apps2スコープのユーザ認可を取得します(既に取得している場合は不要です)。
  3. mixiアプリ内でフォトアップロード用のURIスキーマを記述します。
  4. mixiサーバからSAP側Webサーバにフォトの取得要求が送信されます。
  5. SAP側Webサーバで署名の検証を行います。
  6. SAP側Webサーバは画像ファイルをmixiサーバに返送します。
  7. ユーザは確認画面にて画像ファイルのサムネイルを閲覧し、登録するか選択します。
  8. mixiサーバ内でかんたん画像アルバムに画像ファイルが登録されます。
画像ファイルの準備

登録したい画像ファイルを、SAP側のWebサーバ上で準備します。登録可能な画像ファイルの形式は「JPEG」となります。準備された画像ファイルをmixiサーバから取得可能とするため、ここで画像ファイルのURLを決定しておきます。

ユーザ認可の取得

アプリからフォトアップロード機能を利用するためには、mixi_apps2スコープのユーザ認可を取得する必要があります。
詳しくは ユーザ認可について を参照ください。

フォトアップロード用URIスキーマの記述

mixiアプリのコンテンツ内に、フォトアップロード用のURIスキーマを記述します。そのURIスキーマは”upload:photo”となります。このURIスキーマを利用する場合には、以下のパラメータを指定します。

名前 説明
img_url 登録したい画像ファイルのエスケープ済みURL。
callback 登録後にmixiアプリに戻る際のエスケープ済みURL。

このURIスキーマの記述例を以下に示します。

<a href="upload:photo?img_url=http%3A%2F%2Fserver.name%2Fimage.jpeg&callback=http%3A%2F%2Fexample.com%2Ffoo%2F">画像アップロード</a>
画像ファイルのmixiサーバからの取得

ユーザが上記のupload:photo URIスキーマによるリンクをクリックした後に、mixiサーバは指定されたURLに基づいて、画像ファイルの取得要求を送信します。SAP側Webサーバは、この取得要求に基づいて、予め準備しておいた画像ファイルをレスポンスとしてmixiサーバに返送します。

mixiサーバからのリクエストには、署名が付与されます。署名の検証には、この文書の最後に記載されている公開鍵を利用します。SAP側Webサーバは、この公開鍵を使って署名の検証を行うことで、mixiサーバからのリクエストかどうかの妥当性を必ず判断するようにしてください。

また、リクエストには「opensocial_owner_id」および「opensocial_app_id」パラメータが含まれます。これは署名のBase stringにも含まれるものです。mixiサーバからのリクエストであるという妥当性検証のほかにも、これらのパラメータを使用することで本人確認(画像ファイルを本当に対象ユーザに渡していいかどうか)も合わせて行うようにしてください。

署名つきリクエストの具体的な検証方法は、以下のドキュメントをご覧ください。

[署名つきリクエストの検証]
http://developer.mixi.co.jp/appli/spec/pc/require_servers#toc-4

ユーザの登録確認とコールバック関数の呼び出し

mixiサーバが画像ファイルの取得を完了した後に、本当にかんたん公開アルバムに公開していいかどうかを問い合わせる確認ページが表示されます。その確認ページには、先ほどmixiサーバが取得した画像ファイルのサムネイル画像が表示されます。

ユーザが登録に同意あるいは拒否を行った後に、callbackパラメータに指定したページに遷移します。その際に、resultパラメータの値(成功時はsuccess, 失敗時はfailed)によって、登録に成功したかどうかを確認することが可能です。この値を必ず確認し、それぞれ適切な処理を実装するようにしてください。失敗時には、errorパラメータにその原因が指定されます。

エラーコード

登録が正常に終了しなかった際のエラーコードと意味は以下となります。

エラーコード 意味
400 指定されたURLへ画像を取りにいったが正常な応答(200)が得られなかった
取得したコンテンツのmime-typeが、jpegでなかった
取得したコンテンツのmime-typeが、jpegでなかった
401 mixi_apps2スコープの認可を保持していないとき
403 ユーザが処理の継続を拒否した
413 リクエストされた画像のサイズが大きすぎる
500 mixi側のサーバエラーにより処理が完了できなかった

xoauth_signature_publickeyパラメータの値と対応する公開鍵

署名つきリクエストの妥当性を検証するために使用するxoauth_signature_publickeyパラメータの値と対応する公開鍵はそれぞれ以下となります。

xoauth_signature_publickeyパラメータの値

app_photo_20140502

公開鍵

-----BEGIN CERTIFICATE-----
MIIDNzCCAh+gAwIBAgIJAOI4hgKxdhkuMA0GCSqGSIb3DQEBBQUAMDIxCzAJBgNV
BAYTAkpQMREwDwYDVQQKDAhtaXhpIEluYzEQMA4GA1UEAwwHbWl4aS5qcDAeFw0x
NDA1MDIwNTE0MjVaFw0yNDA0MjkwNTE0MjVaMDIxCzAJBgNVBAYTAkpQMREwDwYD
VQQKDAhtaXhpIEluYzEQMA4GA1UEAwwHbWl4aS5qcDCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBAKWXYJpspPZ+l7ncUUtcSuvoFka2HJwnlw6KujogVEBU
EUagVrYsd3GIPq4102dqocApxkkMGaQlJdvYgAzfGBNth5UnypKvThS+W34xE33l
7Ldnik6I/R6HAZvUmeep3TkHysQjS0iCtCUCjH+uiAtba1DW8+iAn9A7j1YMxB/Q
OzFPJ9Psp100TSbAVYWr07wXf0T1aGVVBPWwJuh0ewk+v1YvFndZ/J11hvLHug6s
gorjEtrnM3hBmRLq6GV+uKrOMIqQmMv3ls8Xu9BbJ5Q7oqDI2PAS1x25jl4MBZAo
UICPGivqlt3A8MjntL68APn7o8/y6g9D4qTSsH7pU0kCAwEAAaNQME4wHQYDVR0O
BBYEFD7Kcy53OkWCJHjxXrOAhgRz7RzOMB8GA1UdIwQYMBaAFD7Kcy53OkWCJHjx
XrOAhgRz7RzOMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKC3Jo6e
X4sWqTBYwOnJAJZWgOJzn97LWlen3QdSyqbx/c8WGauOfRLSMbJawXni8Sl7RIUR
KFbfCg3wDPbzsl6/716p52diY63cdJPCGum2C2AlFNaDTGHaTtA1W16pT28R14ZW
y0cp2VX2MvvBgfbYPN9WvFlw2A+SJi6SNgZpRUpsNl8hTUXvGfr47rioREH2/KHN
FCLAVC1B8usSmBTtTYuGJv005by4KxwchNGcoH6n1Lb0ekENA45NFAcKMBe4Hdyn
dyUdys51Grh2fwe/0pupOJ6iJX3+pLACx0jvf09mjieFJEZ3kL9hQWlQ/NzsZQsU
Uhyna4w67WedXh8=
-----END CERTIFICATE-----

 

このページの上部へ