2010-12-08 5 views
0

Я хочу Войти через twitter, facebook, openid, yahoo, google, используя одно приложение.Cant find facebook button using django-socialauth

так я выбираю Джанго-socialauth

я прочитал эту artile: django-socialauth-login-via-twitter-facebook-openid-yahoo-google/

, но когда я загрузить код и запустить его, я не могу найти кнопку facebook,

что я могу сделать ?

благодаря

это мое демо изображение:

alt text

и это авторская демо: here

alt text

ответ

0

Так что мне пришлось немного подправить свой вид кода чтобы заставить это работать. Смотря в socialauth.views, вы видите, что мы получаем атрибут FACEBOOK_APP_ID из нашего файла настроек. Это хорошо.

Глядя на socialauth/login_page.html шаблон, есть раздел:

{% if FACEBOOK_APP_ID %} 
    <div id="facebook"> 
    <p><fb:login-button perms="{{ login_button_perms }}"></fb:login-button></p> 
    </div>  
{% endif %} 

Теперь, это, как представляется, доступ к переменной FACEBOOK_APP_ID. Конечно, мы получаем этот атрибут в socialauth.views. Однако у нас есть одна проблема. Мы никогда не выставляем переменную шаблону (что нужно делать вручную, помните?). Таким образом, мы заменим старый вид login_page:

def login_page(request): 
    return render_to_response('socialauth/login_page.html', 
          {'next': request.GET.get('next', LOGIN_REDIRECT_URL)}, 
          context_instance=RequestContext(request)) 

с:

def login_page(request): 
    return render_to_response('socialauth/login_page.html', { 
    'next': request.GET.get('next', LOGIN_REDIRECT_URL), 
    'FACEBOOK_APP_ID': FACEBOOK_APP_ID, 
    }, 
    context_instance=RequestContext(request)) 

Обратите внимание, что единственное различие находится в строке 'FACEBOOK_APP_ID': FACEBOOK_APP_ID.

 Смежные вопросы

  • Нет связанных вопросов^_^