如何使用Mastodon.py登录Pixelfed实例?
问题描述
- 已通过Mastodon.py使用用户名/密码成功连接Mastodon实例,但实际需要连接Pixelfed实例
- 根据Pixelfed官方文档,其API连接方式与Mastodon类似,但仅支持Personal Token或OAuth2认证方式
- 因仅需向个人Pixelfed账号批量上传图片,无需OAuth2流程,尝试了用户名/密码、用户名+Personal Token两种连接方式,均触发认证报错
- 执行登录操作时出现以下报错:
api.log_in("fabiocosta0305@gmail.com","<password>",scopes=['read','write','follow','push']) Traceback (most recent call last): File "/home/s192199488/.local/lib/python3.10/site-packages/mastodon/authentication.py", line 322, in log_in response = self.__api_request('POST', '/oauth/token', params, do_ratelimiting=False) File "/home/s192199488/.local/lib/python3.10/site-packages/mastodon/internals.py", line 299, in __api_request raise ex_type('Mastodon API returned error', response_object.status_code, response_object.reason, error_msg) mastodon.errors.MastodonUnauthorizedError: ('Mastodon API returned error', 401, 'Unauthorized', 'invalid_client') During handling of the above exception, another exception occurred: Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/s192199488/.local/lib/python3.10/site-packages/mastodon/authentication.py", line 328, in log_in raise MastodonIllegalArgumentError('Invalid user name, password, or redirect_uris: %s' % e) mastodon.errors.MastodonIllegalArgumentError: Invalid user name, password, or redirect_uris: ('Mastodon API returned error', 401, 'Unauthorized', 'invalid_client')
解决建议
1. 采用Personal Token直接初始化连接
Pixelfed不支持用户名/密码直接登录(这是报错的核心原因),必须使用Personal Token完成认证:
- 登录Pixelfed网页端,进入「设置」→「应用」,创建新的Personal Token,勾选所需权限(仅上传图片的话,勾选
write即可) - 初始化Mastodon对象时直接传入Token,无需调用
log_in方法:
from mastodon import Mastodon # 替换为你的Pixelfed实例地址和Personal Token api = Mastodon( access_token="你的Personal Token字符串", api_base_url="https://你的Pixelfed实例域名" ) # 测试图片上传 media_obj = api.media_post("/path/to/your/image.jpg") # 发布带图动态 api.status_post("测试上传", media_ids=[media_obj])
2. 验证关键参数正确性
- 确认
api_base_url是Pixelfed实例的完整根域名(比如https://pixelfed.social,不要添加/api等后缀) - 检查Personal Token的权限是否包含
write,权限不足会导致上传失败
3. 排查Token有效性
- 重新生成Personal Token,避免复制时出现空格、截断或字符错误
- 确保Pixelfed账号状态正常,无限制或封禁情况,能正常在网页端发布内容
内容的提问来源于stack exchange,提问作者HufflepuffBR
相关产品推荐
相关产品推荐

