← 返回首页
Mode B — 代理 API

替代 Access Token,用原生 Facebook SDK 操作

本教程将引导你通过尤里改的代理 API, 将尤里改 Token 直接替代 Facebook Access Token, 使用 Facebook SDK 的原生代码进行广告操作——你现有的代码只需改两行。

工作原理

尤里改代理 API 的原理非常简单:

  1. 你将 Facebook SDK 的 base URLgraph.facebook.com 改为 facebook-graph.baiz.ai
  2. 你将 access_token 从 Facebook 原生 Token 改为尤里改 Token
  3. 下游的所有 Facebook SDK 代码完全不变——尤里改代理会将请求透传给 Facebook Graph API
💡 核心优势 如果你的团队已经有基于 Facebook SDK 开发的投放系统,使用代理 API 模式可以零重构接入尤里改。不需要学习新的 API,不需要重写业务逻辑。

前置条件

  • 已联系尤里改销售团队(微信: 76762)获取 API Token
  • 已有项目中安装了 Facebook Marketing API SDK(Python / PHP / Node.js 等)

Step 1 · 获取 Token

联系销售

添加微信获取专属 API Token

微信搜索 76762,联系尤里改销售团队。说明你需要代理 API 模式接入。

Step 2 · 修改代码(仅两行)

在你现有的代码中,找到初始化 Facebook API 的地方,修改以下两个值:

配置项原来的值改为
access_token EAABsbCS...(Facebook Token) yuri_sk_你的Token
base_url graph.facebook.com facebook-graph.baiz.ai

以下是各语言的完整示例:

Python

app.py
# pip install facebook-business
from facebook_business.api import FacebookAdsApi
from facebook_business.adobjects.campaign import Campaign

# ---- 仅需修改这两行 ----
api = FacebookAdsApi.init(
    access_token="yuri_sk_你的Token"
)
api.set_default_api()
# 将 API 请求指向尤里改代理
FacebookAdsApi.get_default_api().HTTP_DEFAULT_HEADERS['Host'] = 'graph.facebook.com'
import facebook_business.api
facebook_business.api.FacebookAdsApi.API_BASE = "https://facebook-graph.baiz.ai"
# ---- 以上就是全部改动 ----

# 下面所有代码和原来完全一样 ↓
ad_account_id = "act_123456789"

# 创建广告系列
campaign = Campaign(parent_id=ad_account_id)
campaign[Campaign.Field.name] = "Spring_Sale_US"
campaign[Campaign.Field.objective] = "OUTCOME_SALES"
campaign[Campaign.Field.status] = "PAUSED"
campaign[Campaign.Field.special_ad_categories] = []
result = campaign.remote_create()

print(f"Campaign created: {result['id']}")

PHP

app.php
<?php
// composer require facebook/php-business-sdk
use FacebookAds\Api;
use FacebookAds\Object\Campaign;
use FacebookAds\Object\Fields\CampaignFields;

// ---- 仅需修改这两行 ----
Api::init(null, null, 'yuri_sk_你的Token');
Api::instance()->setDefaultGraphBaseDomain('facebook-graph.baiz.ai');
// ---- 以上就是全部改动 ----

// 下面所有代码和原来完全一样 ↓
$campaign = new Campaign(null, 'act_123456789');
$campaign->setData([
    CampaignFields::NAME => 'Spring_Sale_US',
    CampaignFields::OBJECTIVE => 'OUTCOME_SALES',
    CampaignFields::STATUS => 'PAUSED',
]);
$campaign->create();

echo "Campaign ID: " . $campaign->id;

Node.js

app.js
// npm install facebook-nodejs-business-sdk
const bizSdk = require('facebook-nodejs-business-sdk');

// ---- 仅需修改这两行 ----
const api = bizSdk.FacebookAdsApi.init('yuri_sk_你的Token');
api._baseUrl = 'https://facebook-graph.baiz.ai';
// ---- 以上就是全部改动 ----

// 下面所有代码和原来完全一样 ↓
const Campaign = bizSdk.Campaign;
const adAccountId = 'act_123456789';

const campaign = new Campaign(null, adAccountId);
campaign.create([], {
    [Campaign.Fields.name]: 'Spring_Sale_US',
    [Campaign.Fields.objective]: 'OUTCOME_SALES',
    [Campaign.Fields.status]: 'PAUSED',
}).then(result => {
    console.log(`Campaign created: ${result.id}`);
});

cURL(直接 HTTP 请求)

如果你不使用 SDK,也可以直接用 HTTP 请求:

terminal
# 原来的请求(直接调 Facebook):
# curl "https://graph.facebook.com/v21.0/act_123/campaigns?access_token=EAABsb..."

# 换成尤里改代理 — 改域名和 Token:
curl "https://facebook-graph.baiz.ai/v21.0/act_123/campaigns\
  ?access_token=yuri_sk_你的Token"

Step 3 · 验证连接

运行以下命令验证 Token 和代理是否配置正确:

terminal
curl "https://facebook-graph.baiz.ai/v21.0/me?access_token=yuri_sk_你的Token"

成功响应会返回你的广告账户信息。如果返回错误,请检查 Token 是否正确或联系销售团队。

✅ 完全兼容 尤里改代理 API 完全兼容 Facebook Graph API 的所有版本(v17.0 - v21.0+)。 你现有的所有 API 调用、Webhook、批量请求等功能都可以正常使用。

代理 API 参考

配置项
代理域名facebook-graph.baiz.ai
协议HTTPS
Token 格式yuri_sk_xxxx
兼容 API 版本v17.0 — v21.0+
请求格式与 Facebook Graph API 完全一致
响应格式与 Facebook Graph API 完全一致
⚠️ 安全提醒 请勿在前端代码(浏览器端 JavaScript)中暴露你的 Token。Token 应仅在服务端使用。

常见问题

代理会修改我的请求内容吗?

不会。尤里改代理是一个透明代理,它仅做身份认证和权限校验,不会修改你的请求体或响应内容。

延迟会增加吗?

代理层带来的额外延迟通常在 10-50ms 以内,对于广告 API 调用来说可以忽略不计。

能用代理模式和 MCP 模式同时使用吗?

可以。同一个 Token 同时支持 MCP 协议和代理 API 两种模式,你可以按场景灵活切换。

出现 403 / 401 错误怎么办?

检查 Token 是否正确复制、是否过期。如果问题持续,联系销售团队(微信: 76762)。