You need to enable JavaScript to run this app. 如何通过OAuth2在Go语言中对接使用Facebook Marketing API
优惠活动
大模型
产品
解决方案
定价
更多

如何通过OAuth2在Go语言中对接使用Facebook Marketing API

基于现有Graph SDK调用Marketing API的实现方案

Facebook Marketing API本质是Graph API的垂直业务分支,采用完全一致的请求协议、鉴权规则,不存在独立的调用规范,不需要专门的SDK,完全可以基于已接入的huandu/facebook SDK完成全部操作。

现有代码需先行调整的配置项

  • OAuth权限域补全:当前代码内的Scopes仅配置了email,调用Marketing API需要根据实际操作补全对应权限,例如读取广告数据需配置ads_read权限,创建、编辑广告需配置ads_management权限,缺少对应权限会直接触发鉴权报错。
  • 令牌类型校验:Marketing API支持系统用户令牌、广告账户关联的用户令牌、页面令牌三种类型,当前使用的FB_USER_TOKEN需确认持有目标广告账户的对应操作权限,否则即使请求格式正确也会被拦截。
  • API版本显式指定:Graph/Marketing API的接口参数随版本迭代变化,必须在初始化SDK时显式指定版本号,避免走SDK默认的老旧版本导致参数不兼容。

具体调用逻辑(完全复用现有SDK封装能力)

已经初始化完成的session对象不需要做额外改造,直接按照Marketing API的端点规则拼接路径调用即可,和普通Graph API的调用流程没有区别:

通用调用规则:Marketing API的所有端点都挂在广告账户(格式为act_<广告账户ID>)的路径下,比如拉取广告系列、创建广告组分别对应/<账户ID>/campaigns、/<账户ID>/adsets这类固定路径。

示例1:GET类请求(拉取广告维度数据)

// 替换为实际的广告账户ID
adAccountID := "act_123456789"
res, err := session.Get(
    fmt.Sprintf("/%s/campaigns", adAccountID),
    map[string]string{
        "fields": "id,name,status,daily_budget,start_time,created_time",
        "limit":  "100",
    },
)
if err != nil {
    log.Printf("请求失败: %v", err)
    return
}
// 直接读取返回的结构化JSON响应
log.Printf("响应内容: %v", res)

示例2:POST类请求(创建/修改广告对象)

// 以创建暂停状态的广告系列为例
res, err := session.Post(
    fmt.Sprintf("/%s/campaigns", adAccountID),
    map[string]interface{}{
        "name":                  "日常投放系列",
        "objective":             "OUTCOME_SALES",
        "status":                "PAUSED",
        "special_ad_categories": []string{},
    },
)
if err != nil {
    log.Printf("创建广告系列失败: %v", err)
    return
}
log.Printf("创建结果: %v", res)

实操避坑要点

  • 当前开启的EnableAppsecretProof = true配置是Marketing API的强制要求,不要关闭,否则绝大多数接口会直接返回403鉴权错误。
  • 初始化SDK时补充API版本配置,避免版本不兼容:
var globalApp = fb.New(ClientID, ClientSecret)
globalApp.APIVersion = "v19.0" // 替换为实际使用的Marketing API版本
globalApp.EnableAppsecretProof = true
  • 对于包含复杂嵌套结构的请求参数(比如定向规则、创意配置),直接按照官方文档要求组装成Go的map结构传入即可,SDK会自动序列化为符合要求的JSON格式,不需要手动拼接HTTP请求体。

内容的提问来源于stack exchange,提问作者Kevin SUON

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.05 12:45:04