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))