废话不多说,先上代码
import requests
from datetime import datetime
import time
import json
# 这里可以替换成你自己的,为了方便替换,使用的线上图片地址
# 我的目标是按照今天周几,帮我切换指定图片,所以为了图省事直接拿图片名来累加
# 预定义的照片数组
photos = {
1: "https://xxxxx.aliyuncs.com/2024/%2008/%2018/zhou1.jpg", # 周一
2: "https://xxxxx.aliyuncs.com/2024/%2008/%2018/zhou2.jpg", # 周二
3: "https://xxxxx.aliyuncs.com/2024/%2008/%2018/zhou3.jpg", # 周三
4: "https://xxxxx.aliyuncs.com/2024/%2008/%2018/zhou4.jpg", # 周四
5: "https://xxxxx.aliyuncs.com/2024/%2008/%2018/zhou5.jpg", # 周五
6: "https://xxxxx.aliyuncs.com/2024/%2008/%2018/zhou6.jpg", # 周六
7: "https://xxxxx.aliyuncs.com/2024/%2008/%2018/zhouri.jpg" # 周日
}
def upload_photo():
try:
t = time.time()
timestamp = int(round(t * 1000))
# 这个是从飞书网页版获取的换头像接口
# 换头像接口
request_url = "https://w6wpt3ic78.feishu.cn/accounts/web/avatar?_t={}".format(timestamp)
# 获取当前星期几
weekday = datetime.now().weekday() + 1
photo_url = photos[weekday]
print('photo_url: {}'.format(photo_url))
payload = {}
response = requests.get(photo_url)
if response.status_code == 200:
photo_data = response.content
files = [
('avatar', photo_data)
]
headers = {
'X-App-Id': '2',
'X-Api-Version': '1.0.24',
'X-Csrf-Token': 'xxxxxx', # 换成自己的
'X-Device-Info': 'platform=websdk',
'X-Lgw-App-Id': 'xxxxxx', # 换成自己的
'X-Lgw-Os-type': '1',
'X-Lgw-Terminal-type': '2',
'X-Locale': 'zh-CN',
'X-Request-Id': 'xxxxxx', # 换成自己的
'X-Terminal-Type': '2',
'Cookie': 'xxxxxx', # 换成自己的
}
# 上传图片
upload_response = requests.post(url=request_url, headers=headers, data=payload, files=files)
data = json.loads(upload_response.text)
print(upload_response.text)
print(data['data']['avatar_url'])
if upload_response.status_code == 200 and data['code'] == 0:
print("上传成功")
else:
print("上传失败")
else:
print("图片下载失败")
except Exception as e:
print(f"发生异常:{e}")
if __name__ == '__main__':
upload_photo()
解释一下
有几个关键地方
头像组
这里是我切换头像的枚举
可以替换成你自己的,为了方便替换,使用的线上图片地址
我的目标是按照今天周几,帮我切换指定图片,所以为了图省事直接拿图片名来累加
# 预定义的照片数组
photos = {
1: "https://xxxxx.aliyuncs.com/2024/%2008/%2018/zhou1.jpg", # 周一
2: "https://xxxxx.aliyuncs.com/2024/%2008/%2018/zhou2.jpg", # 周二
3: "https://xxxxx.aliyuncs.com/2024/%2008/%2018/zhou3.jpg", # 周三
4: "https://xxxxx.aliyuncs.com/2024/%2008/%2018/zhou4.jpg", # 周四
5: "https://xxxxx.aliyuncs.com/2024/%2008/%2018/zhou5.jpg", # 周五
6: "https://xxxxx.aliyuncs.com/2024/%2008/%2018/zhou6.jpg", # 周六
7: "https://xxxxx.aliyuncs.com/2024/%2008/%2018/zhouri.jpg" # 周日
}
飞书换头像接口
从网页版飞书获取,如果希望切换平台,请自行修改、测试
# 换头像接口
request_url = "https://w6wpt3ic78.feishu.cn/accounts/web/avatar?_t={}".format(timestamp)
上传
因为需要上传 file 流,所以先把在线图片下载下来
再上传到换头像接口
headers
里面部分参数得换成自己的
response = requests.get(photo_url)
if response.status_code == 200:
photo_data = response.content
files = [
('avatar', photo_data)
]
headers = {
'X-App-Id': '2',
'X-Api-Version': '1.0.24',
'X-Csrf-Token': 'xxxxxx', # 换成自己的
'X-Device-Info': 'platform=websdk',
'X-Lgw-App-Id': 'xxxxxx', # 换成自己的
'X-Lgw-Os-type': '1',
'X-Lgw-Terminal-type': '2',
'X-Locale': 'zh-CN',
'X-Request-Id': 'xxxxxx', # 换成自己的
'X-Terminal-Type': '2',
'Cookie': 'xxxxxx', # 换成自己的
}
header
获取流程
先登录飞书网页版个人中心 - F12打开控制台 - 右上角-头像-鼠标悬浮到头像框能够看到上传的 icon - 上传一个头像,获取请求中的参数
主要参数
获取之后替换到脚本中
评论区