目 录CONTENT

文章目录

自定义脚本搭配青龙面板实现飞书自动换头像

青云
2024-12-27 / 0 评论 / 0 点赞 / 66 阅读 / 5593 字
温馨提示:
本文最后更新于 2024-12-27,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

废话不多说,先上代码

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 - 上传一个头像,获取请求中的参数

右上角-头像-鼠标悬浮到头像框能够看到上传的 icon

主要参数

获取之后替换到脚本中

0

评论区