我正在为Google表格编写一个脚本,该脚本使用Facebook的Graph API来获取我的数据。今天早些时候一切都工作但突然间我收到了错误:
UrlFetch失败,因为有太多的流量被发送到 指定的网址。
我还没有达到关于使用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 Formula
=getWebClicks('E2')
答案 0 :(得分:2)
经过一番研究后我发现了一个解决方案。我将'useIntranet'选项作为参数添加到fetchResult,这似乎解决了这个问题。我想这个请求现在是从另一个资源发送的,该资源不会限制对Facebook的Graph API的请求。
如果有人能解释为什么这会解决我的问题,那也会很棒!
var options = {"useIntranet" : true};
var fetchResult = UrlFetchApp.fetch(fullURL, options);
答案 1 :(得分:0)
我没有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.');
或与此错误对象匹配的任何内容。
答案 2 :(得分:0)
正确的答案是:等到禁令解除之后。