方法一
facebook 上傳照片 + 開相簿:
自動開相簿 + post wall,不想 po 牆請設 no_story:'1',
var params:Object = {image:bitmap, message:'my message', fileName:'myfilename'};
Facebook.api("me/photos", onSaveToPhotoAlbumComplete, params);
方法二
先開相簿取得 albumId,再上傳照片
var params:Object = { name:'這是我的相簿', message:'這是描述' };
Facebook.api("me/albums", onCreateAlbumComplete, params, "POST");
取得 albumId 再用 MultipartURLLoader 上傳照片
var ml:MultipartURLLoader = new MultipartURLLoader();
ml.addEventListener(Event.COMPLETE, onComplete);
ml.addVariable('message', 'my message');
ml.addVariable('access_token', Facebook.getSession().accessToken);
// form一次送多張出來fb不吃,只能一張一張送
ml.addFile(img, "image" + __arg + ".jpg", "image" + __arg);
ml.load("https://graph.facebook.com/" + albumId + "/photos");
方法三
同上述方式
batch 方式一次傳多張照片(自動開相簿)
GraphAPI_1.7 後才有支援 batch 模式。
var batch:Batch = new Batch();
var len:int = arrUploadPhoto.length;
var i:int = 0;
trace("uploadBatch:"+len);
for (i = 0; i < len; i++) {
batch.add("me/photos",
null,
{
message: 'photo' + i,
//no_story: '1',//目前無效!?
fileName: 'filename' + i,
image: arrUploadPhoto[i] as ByteArray,
contentType: 'image/jpg'
},
URLRequestMethod.POST
);
}
Facebook.batchRequest(batch);
同場加映,用 media 方式 post wall,顯示方式是
先顯示一張小圖,按下 more 才會全部顯示。
var o:Object =
{
message: "test message",
attachment:
{
caption: "test caption",
description: "description line",
name: "my name",
href: "http://www.google.com",
media: [{
type: "image",
src: "http://labs.wwwins.com.tw/flash/jacky/fb/images/1.jpg",
href:"http://google.com/"
},{
type: "image",
src: "http://labs.wwwins.com.tw/flash/jacky/fb/images/2.jpg",
href:"http://gmail.com/"
},{
type: "image",
src: "http://labs.wwwins.com.tw/flash/jacky/fb/images/3.jpg",
href:"http://bing.com/"
}]
}
};
Facebook.ui("stream.publish", o, onPublishComplete);
update 2012.2.20
開設相簿時,會有訊息(XXX added X new photos to the album XXX相簿.)分享到塗鴉牆,
但因為相簿不能帶訊息(只有描述),不過可以在相簿的名字上動手腳。
沒有留言:
張貼留言