2011年9月23日 星期五

facebook actionscript api (照片+相簿) - part3

方法一
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相簿.)分享到塗鴉牆,
但因為相簿不能帶訊息(只有描述),不過可以在相簿的名字上動手腳。

沒有留言:

張貼留言