You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Google Apps Script将Google Drive中的图片发布到Facebook?

解决Google Apps Script上传Google Drive图片到Facebook的方法

Facebook Graph API的/photos端点支持multipart/form-data格式直接上传文件内容,你之前用的application/x-www-form-urlencoded仅适配公开URL场景,改成以下方式即可上传Drive中的图片:

步骤1:启用Google Drive API

在Google Apps Script编辑器中,点击「扩展」→「Apps Script API」,确保Drive API已启用;若未找到,进入「服务」选项卡,搜索并启用「Drive API」。

步骤2:修改上传函数

替换原有的postToFacebook函数,改为直接上传Drive图片的二进制数据:

function postToFacebookFromDrive(driveFileId, caption) {
  const pageAccessToken = getPageAccessToken();
  const FACEBOOK_PAGE_ID = "你的页面ID"; // 替换为实际页面ID

  // 从Drive获取图片的Blob对象
  const fileBlob = Drive.Files.get(driveFileId, {alt: 'media'}).getBlob();

  var options = {
    'method': 'post',
    'muteHttpExceptions': true,
    'payload': {
      'source': fileBlob,
      'caption': caption,
      'published': true,
      'access_token': pageAccessToken
    }
  };

  const container = `https://graph.facebook.com/v17.0/${FACEBOOK_PAGE_ID}/photos`;
  var response = UrlFetchApp.fetch(container, options);
  Logger.log(response.getContentText());
}

关键说明

  • 无需公开URL,通过Drive.Files.get结合alt: 'media'获取图片二进制Blob,直接作为source参数传入payload。
  • 当payload包含Blob对象时,Google Apps Script会自动将请求Content-Type设为multipart/form-data,匹配Facebook API的文件上传要求。
  • 确保脚本运行者拥有目标Drive图片的读取权限(共享文件需添加运行者为协作者)。

使用示例

调用函数时传入Drive图片的文件ID和文案即可:

postToFacebookFromDrive("你的Drive图片文件ID", "这是从Google Drive上传的图片");

内容的提问来源于stack exchange,提问作者Khnaz35

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 12:45:17