76 lines
2.1 KiB
Python
76 lines
2.1 KiB
Python
|
|
import requests
|
|||
|
|
import json
|
|||
|
|
from typing import Union
|
|||
|
|
from get_baidu_token import GetBaiduToken
|
|||
|
|
|
|||
|
|
|
|||
|
|
def get_baidu_adgroup_request(identifier: Union[str, int], body: dict) -> dict:
|
|||
|
|
"""
|
|||
|
|
向百度API发送请求
|
|||
|
|
:param identifier: 广告主名称或媒体账户ID
|
|||
|
|
:param body: 请求体内容
|
|||
|
|
:return: API响应结果
|
|||
|
|
"""
|
|||
|
|
# 获取header
|
|||
|
|
token_getter = GetBaiduToken(identifier)
|
|||
|
|
header = token_getter.get_header()
|
|||
|
|
if not header:
|
|||
|
|
return {"error": "Failed to get valid header"}
|
|||
|
|
# 构建完整请求负载
|
|||
|
|
payload = {
|
|||
|
|
"header": header,
|
|||
|
|
"body": body
|
|||
|
|
}
|
|||
|
|
# API端点
|
|||
|
|
url = "https://api.baidu.com/json/feed/v1/AdgroupFeedService/getAdgroupFeed"
|
|||
|
|
# 请求头
|
|||
|
|
http_headers = {
|
|||
|
|
"Accept-Encoding": "gzip, deflate",
|
|||
|
|
"Content-Type": "application/json",
|
|||
|
|
"Accept": "application/json"
|
|||
|
|
}
|
|||
|
|
try:
|
|||
|
|
# 发送请求
|
|||
|
|
response = requests.post(
|
|||
|
|
url,
|
|||
|
|
data=json.dumps(payload),
|
|||
|
|
headers=http_headers
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
# 返回JSON响应
|
|||
|
|
return response.json()
|
|||
|
|
except Exception as e:
|
|||
|
|
return {"error": f"API request failed: {str(e)}"}
|
|||
|
|
|
|||
|
|
|
|||
|
|
# 使用示例
|
|||
|
|
if __name__ == "__main__":
|
|||
|
|
# 定义请求体
|
|||
|
|
request_body = {
|
|||
|
|
"adgroupFeedFields": [
|
|||
|
|
"adgroupFeedId",
|
|||
|
|
"campaignFeedId",
|
|||
|
|
"adgroupFeedName",
|
|||
|
|
"pause",
|
|||
|
|
"bid",
|
|||
|
|
"producttypes",
|
|||
|
|
"ftypes",
|
|||
|
|
"status",
|
|||
|
|
"bidtype",
|
|||
|
|
"ocpc",
|
|||
|
|
"atpFeedId",
|
|||
|
|
"deliveryType",
|
|||
|
|
"productSetId",
|
|||
|
|
"ftypeSelection",
|
|||
|
|
"bidSource",
|
|||
|
|
"atpName"
|
|||
|
|
],
|
|||
|
|
"ids": [1413521619], # 广告计划ID
|
|||
|
|
"idType": 1, # ID类型,1-计划ID,2-单元ID
|
|||
|
|
}
|
|||
|
|
# 使用广告主名称查询
|
|||
|
|
# response = make_baidu_api_request("原生-SLG-乱世-安卓12A20KA00006", request_body)
|
|||
|
|
# 使用媒体账户ID查询
|
|||
|
|
response = get_baidu_adgroup_request("12466757256", request_body)
|
|||
|
|
print(json.dumps(response, ensure_ascii=False))
|