Last active
August 29, 2015 14:17
-
-
Save hadashiA/37c33bb12c2077d907c2 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 画像をpngとかjpegにエンコードするライブラリです。 | |
// https://code.google.com/p/as3corelib/downloads/list | |
import com.adobe.images.*; | |
// バイナリをBase64エンコードするライブラリです。 | |
// http://crypto.hurlant.com/ | |
import com.hurlant.util.Base64; | |
// SUZURIにPOSTする | |
function postSuzuri(event: MouseEvent): void { | |
// BitmapData を PNGに変換 | |
var bytes:ByteArray = PNGEncoder.encode(bmp_data); | |
// SUZURI API で直接POSTできるのは、DataURL という形式の文字列なので変換 | |
var dataUrl:String = "data:image/png;base64," + Base64.encodeByteArray(bytes); | |
// SUZURIのにPOSTするデータ | |
// 以下で設定している細かい値については、こちらにドキュメントがあります。https://suzuri.jp/developer | |
var material = { | |
texture: dataUrl, | |
title: "商品の名前を入れる", | |
description: "商品の説明を入れる", | |
products: [ | |
{ | |
itemId: 1, // 1=Tシャツ | |
published: true, // true=公開状態になる | |
resizeMode: "contain" // "contain" = 自動で拡大 | |
} | |
] | |
}; | |
// JSON文字列に変換 | |
var materialJSON = JSON.stringify(material); | |
var request = new URLRequest(); | |
// APIを使うにはアクセストークンが必要です。 | |
// アクセストークンは、SUZURIユーザが認証するともらえる文字列です。 | |
// 以下は、テストのため、https://suzuri.jp/tosute に投稿できるアクセストークンを仮で設定しています。 | |
var authorization:URLRequestHeader = new URLRequestHeader("Authorization", "Bearer f1f4d48f24ea43e7f37ea58a878aa4249339222b6646e084aa0ccf1751e0d886"); | |
request.url = "https://suzuri.jp/api/v1/materials"; | |
request.method = URLRequestMethod.POST; | |
request.requestHeaders = [authorization]; | |
request.contentType = "application/json"; | |
request.data = materialJSON; | |
var urlLoader = new URLLoader(); | |
urlLoader.dataFormat = URLLoaderDataFormat.TEXT; | |
urlLoader.addEventListener(IOErrorEvent.IO_ERROR, handleResponseError); | |
urlLoader.addEventListener(Event.COMPLETE, handleResponse); | |
urlLoader.load(request); | |
trace("-----> Request: ", materialJSON); | |
} | |
function handleResponseError(event: IOErrorEvent): void { | |
throw new Error(event.text); | |
} | |
function handleResponse(event: Event): void { | |
var urlLoader:URLLoader = event.target as URLLoader; | |
var body:String = urlLoader.data; | |
trace("=====> Response: " + body); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment