如何通过JavaScript SDK将本地图片发布到Facebook而不需要URL?

问题描述 投票:0回答:1

我正在尝试将 JSSDK 用于桌面网站,而不是移动网站。我能够登录,然后这就是我正在做的事情:

  1. 允许用户使用app_id登录,并获取access_token。
  2. 获取本地图像的 base64 数据(其约束)并将其转换为 blob。
  3. 使用该 blob 作为图像“源”发送上传请求 因此,根据文档,如果成功,我预计会获得一个“id”,以及重定向到帖子网址。

这是我的片段:

//2.
function base64ToBlob(base64String) {
    const parts = base64String.split(',');
    const header = parts[0];
    const encodedData = atob(parts[1]);
    const buffer = new Uint8Array(encodedData.length);
    for (let i = 0; i < buffer.length; i++) {
        buffer[i] = encodedData.charCodeAt(i);
    }

    return new Blob([buffer], { type: header.replace(/data:([^;]*);base64,/, '$1') });
}

//3.
async function handleUpload(accessToken, blob) {
    const formData = new FormData();
    formData.append('source', blob);
    formData.append('access_token', accessToken);
    formData.append('caption', 'test_photo_upload');
    
    try {
         const response = await fetch('https://graph.facebook.com/v19.0/me/photos', {
             method: 'POST',
             body: formData,
        });
    
        const data = await response.json();

        if (!response.ok) {
            throw new Error(`HTTP error! status: ${response.status}, ${JSON.stringify(data.error)}`);
        console.log('Photo uploaded successfully:', data);
             return data;
        } catch (error) {
             console.error('Error uploading photo:', error);
             return null
        }
   }

它表示由于相关权限已被弃用,端点已被弃用。

javascript facebook facebook-graph-api facebook-javascript-sdk facebook-social-plugins
1个回答
0
投票

事实证明,“publish_permission”权限及其依赖端点自 2018 年以来已被弃用,并于 2020 年完成。我不会继续这个问题,而是会问一个新问题,了解当前的方法是什么。

此弃用的文章:https://developers.facebook.com/blog/post/2018/07/31/platform-update-publish-permission/

这是堆栈上的相关答案:Facebook Graph API SDK v5 - 将图片发布到页面的相册

官方文档应该已将其声明为已弃用。相反,我们以错误消息的形式得到它。 NVM。

© www.soinside.com 2019 - 2024. All rights reserved.