from graia.broadcast import Broadcast
from graia.application import GraiaMiraiApplication, Session
from graia.application.message.chain import MessageChain
import asyncio
from graia.application.message.elements.internal import Plain
from graia.application.friend import Friend
loop = asyncio.get_event_loop()
bcc = Broadcast(loop=loop)
app = GraiaMiraiApplication(
broadcast=bcc,
connect_info=Session(
host="http://localhost:8080", # 填入 httpapi 服务运行的地址
authKey="graia-mirai-api-http-authkey", # 填入 authKey
account=5234120587, # 你的机器人的 qq 号
websocket=True # Graia 已经可以根据所配置的消息接收的方式来保证消息接收部分的正常运作.
)
)
@bcc.receiver("FriendMessage")
async def friend_message_listener(app: GraiaMiraiApplication, friend: Friend):
await app.sendFriendMessage(friend, MessageChain(__root__=[
Plain("Hello, World!")
]))
app.launch_blocking()
[2020-08-03 11:08:35,230][INFO]: launching app...
[2020-08-03 11:08:39,236][INFO]: application shutdowning...
Traceback (most recent call last):
File "C:\Users\songr\AppData\Local\Programs\Python\Python38\lib\site-packages\aiohttp\connector.py", line 936, in _wrap_create_connection
return await self._loop.create_connection(*args, **kwargs) # type: ignore # noqa
File "C:\Users\songr\AppData\Local\Programs\Python\Python38\lib\asyncio\base_events.py", line 1025, in create_connection
raise exceptions[0]
File "C:\Users\songr\AppData\Local\Programs\Python\Python38\lib\asyncio\base_events.py", line 1010, in create_connection
sock = await self._connect_sock(
File "C:\Users\songr\AppData\Local\Programs\Python\Python38\lib\asyncio\base_events.py", line 924, in _connect_sock
await self.sock_connect(sock, address)
File "C:\Users\songr\AppData\Local\Programs\Python\Python38\lib\asyncio\proactor_events.py", line 702, in sock_connect
return await self._proactor.connect(sock, address)
File "C:\Users\songr\AppData\Local\Programs\Python\Python38\lib\asyncio\windows_events.py", line 808, in _poll
value = callback(transferred, key, ov)
File "C:\Users\songr\AppData\Local\Programs\Python\Python38\lib\asyncio\windows_events.py", line 595, in finish_connect
ov.getresult()
ConnectionRefusedError: [WinError 1225] 远程计算机拒绝网络连接。
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\songr\AppData\Local\Programs\Python\Python38\lib\site-packages\graia\application\__init__.py", line 579, in launch_blocking
fetch_method = loop.run_until_complete(self.launch())
File "C:\Users\songr\AppData\Local\Programs\Python\Python38\lib\asyncio\base_events.py", line 616, in run_until_complete
return future.result()
File "C:\Users\songr\AppData\Local\Programs\Python\Python38\lib\site-packages\graia\application\__init__.py", line 543, in launch
await self.authenticate()
File "C:\Users\songr\AppData\Local\Programs\Python\Python38\lib\site-packages\graia\application\__init__.py", line 66, in authenticate
async with self.session.post(self.url_gen("auth"), json={
File "C:\Users\songr\AppData\Local\Programs\Python\Python38\lib\site-packages\aiohttp\client.py", line 1012, in __aenter__
self._resp = await self._coro
File "C:\Users\songr\AppData\Local\Programs\Python\Python38\lib\site-packages\aiohttp\client.py", line 480, in _request
conn = await self._connector.connect(
File "C:\Users\songr\AppData\Local\Programs\Python\Python38\lib\site-packages\aiohttp\connector.py", line 523, in connect
proto = await self._create_connection(req, traces, timeout)
File "C:\Users\songr\AppData\Local\Programs\Python\Python38\lib\site-packages\aiohttp\connector.py", line 858, in _create_connection
_, proto = await self._create_direct_connection(
File "C:\Users\songr\AppData\Local\Programs\Python\Python38\lib\site-packages\aiohttp\connector.py", line 1004, in _create_direct_connection
raise last_exc
File "C:\Users\songr\AppData\Local\Programs\Python\Python38\lib\site-packages\aiohttp\connector.py", line 980, in _create_direct_connection
transp, proto = await self._wrap_create_connection(
File "C:\Users\songr\AppData\Local\Programs\Python\Python38\lib\site-packages\aiohttp\connector.py", line 943, in _wrap_create_connection
raise client_error(req.connection_key, exc) from exc
aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:8080 ssl:default [远程计算机拒绝网络连接。]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "e:/coding/mirai/bot.py", line 28, in <module>
app.launch_blocking()
File "C:\Users\songr\AppData\Local\Programs\Python\Python38\lib\site-packages\graia\application\__init__.py", line 582, in launch_blocking
loop.run_until_complete(self.shutdown())
File "C:\Users\songr\AppData\Local\Programs\Python\Python38\lib\asyncio\base_events.py", line 616, in run_until_complete
return future.result()
File "C:\Users\songr\AppData\Local\Programs\Python\Python38\lib\site-packages\graia\application\__init__.py", line 572, in shutdown
await self.signout()
File "C:\Users\songr\AppData\Local\Programs\Python\Python38\lib\site-packages\graia\application\__init__.py", line 88, in signout
raise InvaildSession("you should call 'authenticate' before this to get a sessionKey!")
graia.application.exceptions.InvaildSession: you should call 'authenticate' before this to get a sessionKey!
[2020-08-03 11:12:13,714][INFO]: launching app...
[2020-08-03 11:12:13,726][INFO]: application shutdowning...
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/graia/application/__init__.py", line 579, in launch_blocking
fetch_method = loop.run_until_complete(self.launch())
File "/usr/local/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
return future.result()
File "/usr/local/lib/python3.8/site-packages/graia/application/__init__.py", line 543, in launch
await self.authenticate()
File "/usr/local/lib/python3.8/site-packages/graia/application/__init__.py", line 69, in authenticate
response.raise_for_status()
File "/usr/local/lib/python3.8/site-packages/aiohttp/client_reqrep.py", line 941, in raise_for_status
raise ClientResponseError(
aiohttp.client_exceptions.ClientResponseError: 404, message='', url=URL('http://localhost:8080/auth')
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "bot.py", line 28, in <module>
app.launch_blocking()
File "/usr/local/lib/python3.8/site-packages/graia/application/__init__.py", line 582, in launch_blocking
loop.run_until_complete(self.shutdown())
File "/usr/local/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
return future.result()
File "/usr/local/lib/python3.8/site-packages/graia/application/__init__.py", line 572, in shutdown
await self.signout()
File "/usr/local/lib/python3.8/site-packages/graia/application/__init__.py", line 88, in signout
raise InvaildSession("you should call 'authenticate' before this to get a sessionKey!")
graia.application.exceptions.InvaildSession: you should call 'authenticate' before this to get a sessionKey!