Перейти к содержимому

Донат
На хостинг
ISK за переводы
до 75kk за 1000зн.
Хроники EVE
Сборник
Новичкам
Полезная информация
Фотография

eve sso oauth tutorial


  • Авторизуйтесь для ответа в теме
7 ответов в теме

#1
elrond1

elrond1

    Clone Grade Zeta

  • Tech III Pilots
  • PipPipPip
  • 429 сообщений
-11
  • Client:Eng
Целевая аудитория: скрипт-кидсы
Если вам захотелось написать свой первый скрипт использующий ESI, или портировать c XML API, которые скорее всего прекратят работу весной 2018 или просто понять, как прикрутить понравившийся скрипт к calc - то надеюсь, что туториал окажется вам полезен
Для профессиональных программистов все доступно изложено прямо на сайте ССР.
 
 
Для работы потребуется:
OS Windows
чтение\записть в c:\eveauth\
- в EveAuth.reg прописан путь к приложению c:\eveauth\callback_desktop.exe, принимающему код авторизации от ССП сервера
- в c:\eveauth\callback_desktop.exe прописан путь к c:\eveauth\config.txt ( настройкам приложения )
 
Браузер - тестирую на хроме, но и остальные должны работать
 
Python 3.6
встроенные библиотеки:
urllib - для парсинга url с кодом авторизации
устанавливаемые библиотеки: ( pip install название_библиотеки )
requests - упрощает обращение по https к серверу ссп
pyinstaller - компилирует питоновский скрипт в exe ( колбек может принять только http сервер или exe приложение с десктопа с которого браузер запросил авторизацию )
peewee - упрощает обращение к субд, куда мы сохраним токен авторизации
 
Опционально pycharm - чтобы было удобнее копаться в исходниках
 
 
 
Для начала требуется зарегестрировать свое приложение на https://developers.eveonline.com
управление приложениями
создать новое
Authentication & API Access
CALLBACK URL: копируете из c:\eveauth\app.keys ( после знака = без пробелов)
PERMISSIONS: выбераете из указанных в scope= (c:\eveauth\app.keys)
далее из APPLICATION SETTINGS сайта ССР:
вставляете в c:\eveauth\app.keys ClientID= SecretKey= ( их значения приватны и их нельзя выкладывать ни на каких форумах и тп )
 
Затем надо установить дополнительные библитеки питона:
pip install requests
pip install peewee
 
Опционально ( для параноиков ) компилируем скрипт callback_desktop.py в .exe и перезаписываем в c:\eveauth - он будет обрабатывать код авторизации пришедший из браузера с сайта ССП, если вносите в него изменения - помните, что в нем нужно указывать полные пути к файлам
pip install pyinstaller
pyinstaller --onefile callback_desktop.py
копируем callback_desktop.exe в  c:\eveauth
 
Регистрируем наш exe на обработку ответа от ССР сервера:
c:\eveauth\EveAuth.reg
 
Посылаем запрос на авторизацию:
open_browser.py
 
Авторизуем наше приложение на сайте ССР. Пару раз нажимаем enter в запущеном браузером callback_desktop.exe - если выскакивают какие косяки, то после ентера сразу принтскрин
 
Если все прошло удачно, то в [config.txt::oauth_database_path] сохраняется: имя нашего чара, его идентефикатор, пара токенов авторизации
 
Проверить успех эксперимента:
test_token.py
 

https://github.com/d...ve_sso_tutorial


Сообщение отредактировал elrond1: 11 February 2018 - 17:12

  • 2

#2
Jack Hareka

Jack Hareka

    белко

  • Tech III Pilots
  • PipPipPipPipPip
  • 3583 сообщений
1427
  • EVE Ingame:Jack Hareka
  • EVE Alt:Calsys
  • Corp:Monks of War
  • Client:Eng

это не туториал

это смех какой-то

 

где сам код-то?

:huh:


  • 0

#3
Alkarian

Alkarian

    Clone Grade Kappa

  • Tech III Pilots
  • PipPipPipPipPip
  • 3155 сообщений
723
  • Client:Eng

мб "туториал" обгрызло каким-то глюком и большая часть поста не запостилась. надеюсь <_<


  • 0

#4
Jack Hareka

Jack Hareka

    белко

  • Tech III Pilots
  • PipPipPipPipPip
  • 3583 сообщений
1427
  • EVE Ingame:Jack Hareka
  • EVE Alt:Calsys
  • Corp:Monks of War
  • Client:Eng

управление приложениями
создать новое
Authentication & API Access
CALLBACK URL: копируете из c:\eveauth\app.keys ( после знака = без пробелов)
PERMISSIONS: выбераете из указанных в scope= (c:\eveauth\app.keys)
далее из APPLICATION SETTINGS сайта ССР:
вставляете в c:\eveauth\app.keys ClientID= SecretKey= ( их значения приватны и их нельзя выкладывать ни на каких форумах и тп )
 
Затем надо установить дополнительные библитеки питона:
pip install requests
pip install peewee
 
Опционально ( для параноиков ) компилируем скрипт callback_desktop.py в .exe и перезаписываем в c:\eveauth - он будет обрабатывать код авторизации пришедший из браузера с сайта ССП, если вносите в него изменения - помните, что в нем нужно указывать полные пути к файлам
pip install pyinstaller
pyinstaller --onefile callback_desktop.py
копируем callback_desktop.exe в  c:\eveauth
 
Регистрируем наш exe на обработку ответа от ССР сервера:
c:\eveauth\EveAuth.reg
 
Посылаем запрос на авторизацию:
open_browser.py
 
Авторизуем наше приложение на сайте ССР. Пару раз нажимаем enter в запущеном браузером callback_desktop.exe - если выскакивают какие косяки, то после ентера сразу принтскрин
 
Если все прошло удачно, то в [config.txt::oauth_database_path] сохраняется: имя нашего чара, его идентефикатор, пара токенов авторизации
 
Проверить успех эксперимента:
test_token.py
 
https://github.com/d...ve_sso_tutorial

 

мб "туториал" обгрызло каким-то глюком и большая часть поста не запостилась. надеюсь <_<

забавно, но так и есть
автор поправь сообщение :)
сорян за минус :(

Сообщение отредактировал Jack Hareka: 11 February 2018 - 17:12

  • 0

#5
elrond1

elrond1

    Clone Grade Zeta

  • Tech III Pilots
  • PipPipPip
  • 429 сообщений
-11
  • Client:Eng

извеняюсь не проверил пост, после html ссылки все обгрызло глюком, перезаписал щас видно все?


  • 0

#6
unti1x

unti1x

    Chaotic neutral

  • Tech III Pilots
  • PipPipPipPipPipPipPipPip
  • 8535 сообщений
1949
  • EVE Ingame:Chio Olgidar
  • Corp:-CDP-
  • Channel:Crevetize
  • Client:Eng

 

Опционально ( для параноиков ) компилируем скрипт callback_desktop.py в .exe

Во-первых, это не компиляция, а просто объединение интерпретатора с исходником. Во-вторых, это нужно не для параноиков (вытащить код или pyo проще простого), а для того, чтобы виндоузятники смогли запустить.



Ну, и всё это никуда не годится без виртуального окружения aka virtualenv


  • 0

Аффтар, зохавай исчо тех аццких олбанских креведок, да выпей йаду.


#7
elrond1

elrond1

    Clone Grade Zeta

  • Tech III Pilots
  • PipPipPip
  • 429 сообщений
-11
  • Client:Eng

виндузятники и не объединенный скрипт смогут запустить, тот экзешник запускается осью, когда браузер получает редирект на зарегестрированный в реестре урл протокол, как по этому редиректу запустить скрипт я не знаю

 

честно говоря, я хотел написать максимально простой туториал, чтобы он был понятен с минимальными знаниями питон:

- минимум синтаксических наворотов

- долго думал насчет peewee & requests - решил все-таки, что их введение упрощает понимание действий

 

насчет virtualenv - да это практически стандарт для профи, но зачем он новичкам? 

 

если у новичка остался избыток любопытсва - то пусть лучше изучает pycharm - там venv будет введен на интуитивно понятном уровне


  • 0

#8
unti1x

unti1x

    Chaotic neutral

  • Tech III Pilots
  • PipPipPipPipPipPipPipPip
  • 8535 сообщений
1949
  • EVE Ingame:Chio Olgidar
  • Corp:-CDP-
  • Channel:Crevetize
  • Client:Eng

виндузятники и не объединенный скрипт смогут запустить

для этого им придётся ставить питон, но для большинства обычных пользователей это слишком сложно

 

 

насчет virtualenv - да это практически стандарт для профи, но зачем он новичкам?

virtualenv нужен для того, чтобы не размазывать зависимости по всей системе и не писать в ридми, как и что нужно устанавливать, потому что все они будут перечислены в requirements.txt и/или в setup.py. он крайне прост и удобен.


  • 0

Аффтар, зохавай исчо тех аццких олбанских креведок, да выпей йаду.





1 посетителей читают тему

0 members, 1 guests, 0 anonymous users