Javascript SDK を使用して Facebook に写真をアップロードしようとしています。特に、Actionscript3 アプリから base64 でエンコードされた bytearray を生成し、ExternalInterface を使用してそれを Javascript ファイルに渡し、そこから bytearray をデコードして FB にアップロードしようとします。しかし、それは私にこのエラーを与えます:
{"error":{"message":"(#324) Requires upload file","type":"OAuthException","code":324}}
URLから簡単に画像をアップロードしようとしたところ、うまくいきました!
これは私のJavascriptコードです:
upPhoto:function(photo) {
var img = F.decode_base64(photo);
FB.api('/me/photos', 'post', {
message:'test',
fileName:'test',
image: img
}, function(response){
if (!response || response.error) {
log('Error!');
} else {
log('Upload OK!');
}
});
}
decode_base64:function(s) {
var e={},i,k,v=[],r='',w=String.fromCharCode;
var n=[[65,91],[97,123],[48,58],[47,48],[43,44]];
for(z in n){for(i=n[z][0];i<n[z][1];i++){v.push(w(i));}}
for(i=0;i<64;i++){e[v[i]]=i;}
for(i=0;i<s.length;i+=72){
var b=0,c,x,l=0,o=s.substring(i,i+72);
for(x=0;x<o.length;x++){
c=e[o.charAt(x)];b=(b<<6)+c;l+=6;
while(l>=8){r+=w((b>>>(l-=8))%256);}
}
}
return r;
}