Skip to content

Instantly share code, notes, and snippets.

@hadashiA
Last active August 29, 2015 14:17
Show Gist options
  • Save hadashiA/37c33bb12c2077d907c2 to your computer and use it in GitHub Desktop.
Save hadashiA/37c33bb12c2077d907c2 to your computer and use it in GitHub Desktop.
// 画像を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