[英]upload photo on facebook using javascript
我正在尝试使用JavaScript在Facebook上上传照片。 我可以使用javascript进行状态更新,但仍在如何上传照片方面遇到困难。 有人可以告诉我如何用Javascript编写代码吗?
正确的代码是:
var params = {};
params.url = 'https://myserver.com/myimage.jpg';
FB.api('/me/photos', 'post', params, function(response) {
if (!response || response.error) {
//error
} else {
picid = response.id;
}
});
请记住,照片必须在您的服务器上,因此您需要使用服务器脚本进行上传。 “ url”参数是您上传的图像文件的绝对URL。 更多信息: https : //developers.facebook.com/docs/reference/api/user/ (请参阅照片/创建)
请记住,“ message”参数必须是根据Facebook条款由100%用户生成的。 您也无法发布到已登录用户的好友墙上,该功能已弃用,无法再使用。
这是一个示例代码:
var imgURL = 'URL de la photo a uploader';
FB.api('/ALBUM_ID/photos', 'post', {
message: ' Ma photo',
url: imgURL,
}, function (response) {
});
我希望这会有所帮助。 通过仅在javascript的帮助下将照片上传到FB,您可以使用以下方法。 这里需要的是imageData(图像的base64格式)和mime类型。
try{
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","Kiss");
try{
$.ajax({
url:"https://graph.facebook.com/" + <<userID received on getting user details>> + "/photos?access_token=" + <<user 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("Ajax Complete");
}
});
}catch(e){console.log(e);}
function dataURItoBlob(dataURI,mime) {
// convert base64 to raw binary data held in a string
// doesn't handle URLEncoded DataURIs
var byteString = window.atob(dataURI);
// separate out the mime component
// write the bytes of the string to an ArrayBuffer
//var ab = new ArrayBuffer(byteString.length);
var ia = new Uint8Array(byteString.length);
for (var i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i);
}
// write the ArrayBuffer to a blob, and you're done
var blob = new Blob([ia], { type: mime });
return blob;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.