1

我正在为 Google 表格编写一个脚本,该脚本使用 Facebook 的 Graph API 来获取我的数据。今天早些时候一切正常,但突然我收到一个错误:

UrlFetch 失败,因为向指定 URL 发送的流量过多。

我没有达到使用 UrlFetch 的任何配额,因为我仍然可以从非 graph.facebook.com 的其他 url 获取 - 所以问题似乎专门针对 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;
}

谷歌表格公式

=getWebClicks('E2')
4

3 回答 3

2

经过更多研究后,我发现了一个解决方案。我添加了 'useIntranet' 选项作为 fetchResult 的参数,这似乎解决了这个问题。我想现在该请求是从另一个资源发送的,该资源不限制对 Facebook 的 Graph API 的请求。

如果有人能解释为什么这解决了我的问题,那也太好了!

var options = {"useIntranet" : true};
var fetchResult = UrlFetchApp.fetch(fullURL, options);
于 2015-04-17T16:36:56.947 回答
1

我没有 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.');

或与此错误对象匹配的任何内容。

于 2015-04-17T13:11:58.540 回答
0

正确答案是:等到禁令解除。

于 2015-06-24T11:31:28.797 回答