сокет не может обнаружить что-либо в URL-адресе неявной аутентификации praw

#python-3.x #websocket #praw

#python-3.x #websocket #praw

Вопрос:

я открываю сервер сокетов, на котором размещены подтверждения reddit, подтверждающие, что вы можете войти в приложение без ущерба для бота, и регистрируюсь с помощью одного жала, называемого токеном доступа, который находится в URL-адресе сервера сокетов, и что я хочу сделать, чтобы этот токен доступа с URL-адреса отображался в приложении.страница сервера сокетов, но сервер не может обнаружить какие-либо переменные внутри URL. Вот мой код, если он вам нужен. это работает, когда implicit не является частью генерации url, но как только я добавляю implicit=True (что мне нужно, я планирую, чтобы это было приложение), оно больше не работает. что я хочу: (о, это для неявного)GET /?state=stateamp;code=code HTTP/ 1.1. что я получаю: GET / HTTP / 1.1. это то, что происходит, когда я делаю data = client.recv(1024).decode(«utf-8»). он вернет правильные данные, когда URL-адрес будет сгенерирован с url = reddit.auth.url(области, состояние). но когда я генерирую URL-адрес с url = reddit.auth.url(области, состояние, неявное = True). данные вернут GET / HTTP/1.1. Мне нужно, чтобы токен доступа был распознан после / . Я использую praw 7.1.0

 GET / HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) QtWebEngine/5.15.2 Chrome/83.0.4103.122 Safari/537.36
Accept: text/html,application/xhtml xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Language: en-US,en;q=0.9
DNT: 1
Sec-Fetch-Site: cross-site
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate, br


/
/
Traceback (most recent call last):
  File "path/prawTest.py", line 81, in <module>
    sys.exit(main())
  File "path/prawTest.py", line 61, in main
    params = {
  File "path/prawTest.py", line 62, in <dictcomp>
    key: value for (key, value) in [token.split("=") for token in param_tokens]
ValueError: not enough values to unpack (expected 2, got 1)
 

Он ожидает увидеть переменные после / .
Без implicit=Tru я получаю следующее:

 GET /?state=50470amp;code=code HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) QtWebEngine/5.15.2 Chrome/83.0.4103.122 Safari/537.36
Accept: text/html,application/xhtml xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Language: en-US,en;q=0.9
DNT: 1
Sec-Fetch-Site: cross-site
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate, br
 

Неявный = истинный URL-адрес выглядит следующим образом:
http://localhost:8080/#access_token=tokenamp;token_type=beareramp;state=39771amp;expires_in=3600amp;scope=*