モバイルで次のコードを使用して、base64 イメージを Facebook に共有したいと考えています。一部のブラウザ (Chrome、Firefox など) は動作しますが、Android ブラウザは動作しません。
見せるだけ
"*{"error":{"message":"(#324) Requires upload file","type":"OAuthException","code":324}}"*
私はすでに 3 日間を費やしましたが、解決できず、このコードの何が問題なのかわかりません。誰でも助けてくれますか??
function sharephoto(){
var imageData = "....";//base64 data mage
var mimeType = "image/jpeg";
try{
var blob = dataURItoBlob(imageData,mimeType);
}catch(e){
console.log(e);
}
var fd = new FormData();
fd.append("access_token",accessToken);
fd.append("source", blob);
fd.append("message","image message");
var xhr=new XMLHttpRequest();
xhr.open( 'POST', 'https://graph.facebook.com/'+ uid + '/photos?access_token=' + accessToken, true );
xhr.onload = xhr.onerror = function() {
console.log( xhr.responseText );
};
xhr.send(fd);
}
function dataURItoBlob(dataURI,mime) {
var byteString = window.atob(dataURI);
var ia = new Uint8Array(byteString.length);
for (var i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i);
}
try {
return new Blob([ia], {type: mime});
} catch (e) {
var BlobBuilder = window.WebKitBlobBuilder || window.MozBlobBuilder;
var bb = new BlobBuilder();
bb.append(ia);
return bb.getBlob(mime);
}
}