javascript - 如何将 Base 64 图像分享到 Facebook
问题描述
我正在尝试使用 Graph API 将画布图像共享到 Facebook。我必须将其转换为 Base 64 图像并上传到 Facebook blob 存储。只有当我必须在代码中添加调试器并逐步调试时,所有事情才能正常工作,但如果我直接单击 Facebook 共享按钮,那么这不会在 Facebook 上共享。请检查以下代码。
window.fbAsyncInit = function () {
FB.init({
appId: '338935439835732',
xfbml: true,
version: 'v2.8'
});
};
(function (d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) { return; }
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
$("#btnfacebook").on('click', function () {
debugger;
var data = getCanvas.toDataURL("image/png").replace(/^data:image\/png/, "data:application/octet-stream");
var blob;
try {
var byteString = atob(data.split(',')[1]);
var ab = new ArrayBuffer(byteString.length);
var ia = new Uint8Array(ab);
for (var i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i);
}
blob = new Blob([ab], { type: 'image/png' });
} catch (e) {
console.log(e);
}
var fd = new FormData();
fd.append("source", blob);
fd.append("message", "Photo Text");
FB.login(function () {
var auth = FB.getAuthResponse();
alert(auth.accessToken);
$.ajax({
url: "https://graph.facebook.com/" + auth.userID + "/photos?access_token=" + auth.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");
}
});
}, { scope: 'publish_actions' });
});
请帮我找到修复
解决方案
推荐阅读
- java - 在 Java 中的数组中查找字符串
- c++ - 强制非推断上下文 - type_identity 等
- javascript - 从电子js中的剪贴板获取屏幕截图作为arrayBuffer
- c++ - 为什么MSYS2的随机数都一样?
- laravel-livewire - alpine 如何在仅打开 1 个项目的情况下制作手风琴?
- sql-server - 将 SQL Server 表中的数据导出到 DBF 文件
- batch-file - 搜索文本文件并在使用批处理文件找到特定字符串时附加它
- axapta - How to name parameter form for SysOperation batch job task in d365?
- html - Angular 不会显示 mp4 电影
- php - laravel 中的电子邮件正文内容翻译问题