首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Facebook图形api错误UrlFetch失败,因为过多的流量被发送到指定的URL

Facebook图形api错误UrlFetch失败,因为过多的流量被发送到指定的URL
EN

Stack Overflow用户
提问于 2015-06-23 14:56:29
回答 2查看 415关注 0票数 0

我正在尝试从Google脚本中获取使用Facebook图形api的Facebook Ad Campaings。

我几乎有5500个数据,我试图在每10分钟内获取数据,并将更新的数据添加到电子表格中。

代码运行良好。但是经过2-3次迭代,我得到了一个错误

代码语言:javascript
运行
复制
UrlFetch failed because too much traffic is being sent to the specified URL

如果我再次与其他电子邮件分享我的Google脚本,它将在接下来的2-3次迭代中工作,然后再次失败。

我找到了一个解决方案,在从以前的堆栈溢出问题获取数据时添加一个额外的选项

但是在添加选项之后

代码语言:javascript
运行
复制
{"useIntranet" : true}

我有请求暂停的问题。

还有其他解决办法来解决这个问题吗?我需要在一天的每10分钟内获取数据。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-26 15:51:14

在更多地使用代码之后,我得到的结果是,fb图形api有一个限制,即每600秒(10分钟)调用600次。但是,从google应用程序脚本调用fb图形api的限制要小得多。这就是为什么当我使用jQuery Ajax在每10分钟加载数据时,工作正常,但是当我使用

代码语言:javascript
运行
复制
UrlFetchApp.fetch

在谷歌应用程序脚本中,在一天2到3次尝试之后,它就会阻止我。

因此,由于限制来自google应用程序脚本的fb图形api,我尝试调用其他api,而不是fb图形api,它成功了,它并没有阻止我。

因此,我创建了一个节点js服务器,类似于:-

代码语言:javascript
运行
复制
var express = require("express"),
app = express(),
cors = require('cors'),
bodyParser = require('body-parser'),
request = require('request');
app.use(cors());

app.use( bodyParser.json() );       // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({     // to support URL-encoded bodies
  extended: true
})); 

app.get("/test",function(req,res){
  res.send("Test success");
})
app.post('/getFbFeed', function(req, res) {
  // Sending request to fb api using the request modules of node, the fb  feed url is coming from
  // the frontend as a request parameter.
   request(req.body.url, function (error, response, body) {
      if (!error && response.statusCode == 200) {
        res.send(body); // Send the response of the requested url to the frontend.
      }
  })
})
app.listen(process.env.PORT || 3000);

因此,这段代码将从fb图形api加载数据,我将从google应用程序脚本发送fb图形api的url。

所以,在我写的google应用程序脚本中

代码语言:javascript
运行
复制
var options =
  {
   "method" : "post",
   "payload" : {"url" : url}
  };
 // Sending post request to node js server with the fb feed url to load data as there is limit to load data from fb to google apps script.
  response = UrlFetchApp.fetch("http://fbfeed-48431.onmodulus.net/getFbFeed",options);
票数 0
EN

Stack Overflow用户

发布于 2015-06-23 16:43:55

这不是你的电话问题,而是你正在打的电话的数量。你可能得减少一点。如您所见,这里的限制是每600秒(10分钟)发出600个呼叫。所以,根据你想要的是什么,怎么做,数量多少,我觉得你的描述足以让我确信,你之所以能够进行2-3次迭代,是因为在第三次迭代结束时,你已经超过了1次调用/秒的速度,基本上是把你从那里隔开了。

我还建议您看看这个页面,了解一些与Facebook相关的限速信息。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31006285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档