使用UrlFetchApp进行Facebook API营销

时间:2019-08-15 07:22:36

标签: javascript facebook facebook-graph-api facebook-marketing-api

我正在尝试将广告系列的效果纳入Google电子表格中。我已经编写了这段代码

function myFunction() {

  var url = "https://graph.facebook.com/v4.0/CAMPAIGNID/insights"
  var params = {
            'access_token':'MYTOKEN',
                 }
      var options = {
        'method' : 'get',
        'payload' : params
      }
 var response = UrlFetchApp.fetch(url, options)
 Logger.log(response)
}

当我运行此代码时,它会向我检索此信息:

{"report_run_id":"234313017579333"} 

但我正在寻找广告系列的见解,而不是报告。有谁知道为什么要找我这个?

ps:运行此命令时:     https://graph.facebook.com/v4.0/CAMPAIGNID/insights

在Facebook的Graph API中,它为我提供了竞选活动的见解。因此,当我尝试通过Google Apps脚本执行此操作时,我无法理解另一个答案。

1 个答案:

答案 0 :(得分:0)

这听起来像您实际上是在发出POST请求,而不是GET-因为发布到此边缘应该触发在后台https://developers.facebook.com/docs/marketing-api/reference/ad-campaign-group/insights/#Creating中创建报告:

  

发布到此边缘时,将创建一个AdReportRun。


https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app#fetchurl-params,在payload参数的说明中说,

  

某些HTTP方法(例如GET)不接受有效负载。

因此,因为您提供了有效负载,所以可能使它使用POST,而忽略了您尝试指定'method' : 'get'

不要提供payload,而是将访问令牌直接作为查询字符串参数附加到URL。

var url = "https://graph.facebook.com/v4.0/CAMPAIGNID/insights?access_token=…"

(然后您可能会完全删除options对象,并仅使用URL作为单个参数来调用fetch,因为无论如何GET都是默认的。)