Wpis z mikrobloga

5 files changed, 104 insertions(+)
- 31c75479af7f8937638ddbf451d02193e8d08e7e

Panie i Panowie, od dzisiaj wszyscy programiści Pythona, a Django w szczególności mogą się cieszyć ze sporego ułatwienia w integracji mechanizmu "Wykop Connect", czyli mechanizmu pozwalającego na autoryzację w innym serwisie za pomocą konta na wykopie (podobnego do FB Connect, OpenID, etc.).

Napisałem nowy SocialProvider dla django-allaouth, dzięki czemu dodanie logowania na stronie za pomocą wykopowego konta (o ile za pomocą ok 45 linijek zintegrowało się wcześniej już django-all (patrz dokumentacja)), powinno być możliwe praktycznie za pomocą 1 lub 2 linijek kodu!!! :) Druga linijka w teorii jest zbędna, ale może się przydać przy developerce :)

Plik: settings.py

INSTALLED_APPS = (
...
# allauth
'allauth',
'allauth.account',
'allauth.socialaccount',

# allauth providers
'allauth.socialaccount.providers.facebook',
'allauth.socialaccount.providers.google',
'allauth.socialaccount.providers.twitter',   

'allauth.socialaccount.providers.wykop',  # linijka obowiązkowa
...
)

SOCIALACCOUNT_PROVIDERS = {
'facebook':{ 'SCOPE': ['email'], 'AUTH_PARAMS': { 'auth_type': 'https' },
'METHOD': 'oauth2' ,'LOCALE_FUNC': lambda request: 'pl-pl', },
'google': { 'SCOPE': ['[https://www.googleapis.com/auth/userinfo.profile',](https://www.googleapis.com/auth/userinfo.profile',) 'email'],
'AUTH_PARAMS': { 'access_type': 'online' }, },
'twitter': {  'SCOPE': ['r_emailaddress'], },
#'wykop':{'REDIRECT_URL':'[http://strona.powrot](http://strona.powrot)u/',
}
Oprócz tych wpisów w settings.py, django-allauth do działania wymaga jeszcze uzupełnienia tabeli

socialaccount.socialapp
o stosowny rekord zawierający m.in.

APPKEY
oraz

SECRET
, które są do wygenerowania w panelu dla programistów. Uzupełnić tabele można w panelu admina django, albo można zautomatyzować cały proces tworząc fixtures.json (patrz dokumentacja):

[
{
"model":"sites.site",
"pk":1,
"fields":{
"id":1,
"domain":"twojadomena.pl",
"name":"twojadomena.pl"
}
},
{
"model":"socialaccount.socialapp",
"pk":1,
"fields":{
"id":1,
"provider":"wykop",
"name":"wykop",
"client_id":"6d5f653CbA68", #tutaj należy wpisać APPKEY
"key":"",
"secret":"pW87MX2iu",       #tutaj należy wpisać SECRET
"sites":[1]
}
}
]
Provider ten korzysta z dobrodziejstwa istnienia wykop-sdk napisanego (o ile się nie mylę) przez @tenji.

Zastrzegam, że zapewne nie wszystko jeszcze musi działać, jednakże od czegoś trzeba zacząć :)

@maciejkiner: coś takiego wystarczy, by otrzymać osiągnięcie Koder, czy trzeba odpalić już jakąś gotową aplikację dla użytkowników? :)

#programowanie #programujzwykopem #django #wykopapi #python #allauth #webdev #wykopsdk @wykop
  • 6