import robloxapi
async def grouprank(userId, rankName):
# omitted rank-name to role id mapping
rankId = dic[rankName]
client = robloxapi.Client(cookie=NOT_STUPID_ENOUGH_TO_DISCLOSE)
grp = await client.get_group(32409863)
await robloxapi.client.Group.set_rank_by_id(grp, userId, rankId)
import asyncio
lp = asyncio.new_event_loop()
lp.run_until_complete(grouprank(2315210162, "Recruit"))
上面的代码抛出以下错误: ssl.SSLError:无法使用 PROTOCOL_TLS_SERVER 上下文创建客户端套接字 (_ssl.c:795)
此代码主要是使用机器人将玩家排名到 roblox 组中的另一个排名
这是 ssl 库中的一个已知问题,并且有许多基于此的 GitHub 问题。 例如,这个是一个示例问题。对我来说,它是通过在之前的项目中使用
ssl._create_default_https_context = ssl._create_unverified_context
来实现的。我不知道它是否适用于 Roblox,因为我无权访问它。
对我来说,此错误消息是由于在我的
ssl.Purpose.CLIENT_AUTH
参数中使用 ssl.Purpose.SERVER_AUTH
而不是 ssl.create_default_context()
引起的。客户端应使用 ssl.Purpose.SERVER_AUTH
,因为他们正在授权与其通信的服务器,而不是 ssl.Purpose.CLIENT_AUTH
,服务器反之亦然。
import socket
import ssl
ME_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sslContext = ssl.create_default_context(purpose = ssl.Purpose.SERVER_AUTH, cafile = 'C://...//CACert.pem', capath = None, cadata = None)
sslContext.load_cert_chain(certfile = 'C://...//serverCert.pem')
ME_SSL = sslContext.wrap_socket(ME_socket, server_side = False, server_hostname = '10.80.25.52')