UrlFetch 失败,因为发送到指定 URL 的流量过多
UrlFetch failed because too much traffic is being sent to the specified URL
我正在为 Google Sheet 编写一个脚本,它使用 Facebook 的图表 API 来获取我的数据。今天早些时候一切正常,但突然出现错误:
UrlFetch failed because too much traffic is being sent to the
specified URL.
我没有达到使用 UrlFetch 的任何配额,因为我仍然可以从其他非 graph.facebook.com 的网址中获取 - 所以这个问题似乎专门与 Facebook 有关。
脚本代码
var myClientID = '';
var myClientSecret = '';
var myAccessToken = '';
var graphURL = 'https://graph.facebook.com/v2.3/';
function getPageLikes(campaign_id) {
var searchParams = '/stats?fields=actions';
var campaignID = campaign_id;
var fullURL = graphURL + campaignID + searchParams + '&access_token=' + myAccessToken;
var fetchResult = UrlFetchApp.fetch(fullURL);
var campaign = JSON.parse(fetchResult);
var likes = campaign.data[0].actions.like;
return likes;
}
Google Sheet 公式
=getWebClicks('E2')
我没有 Facebook,所以无法尝试,请将 var fetchResult = UrlFetchApp.fetch(fullURL);
替换为:
do{
var fetchResult = UrlFetchApp.fetch(fullURL);
}while(fetchResult == 'UrlFetch failed because too much traffic is being sent to the specified URL.');
或与此错误对象匹配的任何内容。
经过更多研究,我发现了一个解决方案。我将 'useIntranet' 选项作为参数添加到 fetchResult 中,这似乎解决了问题。我想请求现在是从另一个资源发送的,该资源不限制对 Facebook 图表的请求 API。
如果有人能解释为什么这解决了我的问题,那就太好了!
var options = {"useIntranet" : true};
var fetchResult = UrlFetchApp.fetch(fullURL, options);
正确答案是:等到禁令解除。
我正在为 Google Sheet 编写一个脚本,它使用 Facebook 的图表 API 来获取我的数据。今天早些时候一切正常,但突然出现错误:
UrlFetch failed because too much traffic is being sent to the specified URL.
我没有达到使用 UrlFetch 的任何配额,因为我仍然可以从其他非 graph.facebook.com 的网址中获取 - 所以这个问题似乎专门与 Facebook 有关。
脚本代码
var myClientID = '';
var myClientSecret = '';
var myAccessToken = '';
var graphURL = 'https://graph.facebook.com/v2.3/';
function getPageLikes(campaign_id) {
var searchParams = '/stats?fields=actions';
var campaignID = campaign_id;
var fullURL = graphURL + campaignID + searchParams + '&access_token=' + myAccessToken;
var fetchResult = UrlFetchApp.fetch(fullURL);
var campaign = JSON.parse(fetchResult);
var likes = campaign.data[0].actions.like;
return likes;
}
Google Sheet 公式
=getWebClicks('E2')
我没有 Facebook,所以无法尝试,请将 var fetchResult = UrlFetchApp.fetch(fullURL);
替换为:
do{
var fetchResult = UrlFetchApp.fetch(fullURL);
}while(fetchResult == 'UrlFetch failed because too much traffic is being sent to the specified URL.');
或与此错误对象匹配的任何内容。
经过更多研究,我发现了一个解决方案。我将 'useIntranet' 选项作为参数添加到 fetchResult 中,这似乎解决了问题。我想请求现在是从另一个资源发送的,该资源不限制对 Facebook 图表的请求 API。
如果有人能解释为什么这解决了我的问题,那就太好了!
var options = {"useIntranet" : true};
var fetchResult = UrlFetchApp.fetch(fullURL, options);
正确答案是:等到禁令解除。