1
嘗試一些數據發佈到我的牆,我想出錯誤圖形API發佈的base64 IMG給Facebook
我一直在引用這個帖子主要是:Upload Base64 Image Facebook Graph API
但我堅持,並保持接收400來自FB的錯誤響應。
並參考這一點,我檢查我的電話,我的數據對象是空的(這是我認爲是造成400錯誤)。
這是我有:
function publishStream(img)
{
var accessToken = "";
FB.getLoginStatus(function(response)
{
if (response.status === 'connected')
{
var uid = response.authResponse.userID;
accessToken = response.authResponse.accessToken;
}
else if (response.status === 'not_authorized') {
// the user is logged in to Facebook,
// but has not authenticated your app
}
else {
// the user isn't logged in to Facebook.
}
});
var imageData = img;
try{
blob = dataURItoBlob(imageData);
}
catch(e){
console.log(e);
}
var fd = new FormData();
fd.append("access_token",accessToken);
fd.append("source", blob);
fd.append("message","");
try{
$.ajax({
url:"https://graph.facebook.com/me/photos?access_token=" + accessToken,
type:"POST",
data:fd,
processData:false,
contentType:false,
cache:false,
success:function(data){
console.log("success " + data);
},
error:function(shr,status,data){
console.log("error " + data + " Status " + shr.status);
},
complete:function(){
console.log("Posted to facebook");
}
});
}
catch(e){
console.log(e);
}
}
function dataURItoBlob(dataURI) {
var byteString = window.atob(dataURI);
var ia = new Uint8Array(byteString.length);
for (var i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i);
}
var blob = new Blob([ia], { type: 'image/png' });
return blob;
}
其中參數IMG是base64編碼的圖像。
這是我所得到的來自錯誤的請求數據:
{ "data": [ ] }
任何人都可以引導我到終點線???任何幫助表示讚賞!