gpt4 book ai didi

javascript - 尝试使用 Google Apps 脚本将图像上传到 Graph API 时如何修复 "Exception: Limit Exceeded"错误?

转载 作者:行者123 更新时间:2023-12-04 09:26:25 26 4
gpt4 key购买 nike

我正在使用 Facebook Graph API使用 Google Apps 脚本创建 Facebook 广告事件。
我需要将图片上传到我的 Facebook 广告帐户。我已经尝试将图像字节用作 Base64 UTF-8 字符串,但是当我调用 API 时,我得到:

Exception: Limit Exceeded: URLFetch URL Length.


基本上,字符串太长了。
我正在使用以下代码:
function uploadTest2() {
var image_id = 'blabla';
var image_blob = DriveApp.getFileById(image_id).getBlob();
var input = image_blob.getBytes();
var docImg = Utilities.base64Encode(input);

var account_id = '1111111111111';
var facebookUrl =
'https://graph.facebook.com/v7.0' +
'/act_' + account_id +
'/adimages?bytes=' + docImg +
'&access_token=' + TOKEN;
Logger.log(facebookUrl);

//var encodedFacebookUrl = encodeURI(facebookUrl);
var options = {
'method' : 'post'
};

var response = UrlFetchApp.fetch(facebookUrl, options);
var results = JSON.parse(response);
Logger.log(response);
}
图像不超过 5MB,我已经使用在线解码器检查了字节字符串以对其进行验证。
您对如何在发布请求中直接使用图像 URL 有任何想法吗?

代码的第二个版本:
function uploadTest2() {
var image_id = 'blabla';
var image_blob = DriveApp.getFileById(image_id).getBlob();
var input = image_blob.getBytes();
var docImg = Utilities.base64Encode(input);

var account_id = '1111111111111';
var facebookUrl =
'https://graph.facebook.com/v7.0' +
'/act_' + account_id +
// '/adimages?bytes=' + encodedImage +
// '&access_token=' + TOKEN;
'/adimages?access_token=' + TOKEN;
Logger.log(facebookUrl);

//var encodedFacebookUrl = encodeURI(facebookUrl);
var options = {
'method' : 'post',
'payload' : image_blob
};

var response = UrlFetchApp.fetch(facebookUrl, options);
var results = JSON.parse(response);
Logger.log(response);
}

最佳答案

解决方案
为了使用 UrlFetchApp.fetch() 发出图像的 post 请求您必须提供方法、有效负载(即您想要的主体 POST ),有时还必须提供内容类型(如果我们传递的不是 JavaScript 对象)。
如果你想通过一个 base64Encode从 blob 获得的对象,您应该对此 JSON 对象进行字符串化。
原始海报缺少的是传递有效载荷,在我的贡献和他的工作之后,他终于通过编辑 options 变量解决了这个问题,例如:

var options = {
'method' : 'post',
'contentType': 'application/json',
'payload': JSON.stringify({"bytes": docImg,"name" : 'Test'})};
}

Documentation reference : Class UrlFetchApp

关于javascript - 尝试使用 Google Apps 脚本将图像上传到 Graph API 时如何修复 "Exception: Limit Exceeded"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62998153/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com