在Chrome扩展程序中实施Facebook登录

时间:2015-03-05 08:28:41

标签: javascript facebook google-chrome google-chrome-extension

我正在尝试使用Facebook的Javascript SDK在Chrome扩展程序的popup.html页面中实现登录按钮。

但是,当我调用FB.login()函数时,出现以下错误:Given URL is not allowed by the Application configuration。现在,由于它是Chrome扩展程序,我不确定是否可以为其提供网址或域名。

那么,在这种情况下我该怎么办?

2 个答案:

答案 0 :(得分:1)

您需要手动构建登录流程,如下所述:

https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/v2.2

我正在为chrome扩展程序构建一个登录按钮,我按照这些说明操作。但是,每当我尝试访问时,我都会这样:

“成功 “安全警告。请使用上面的URL和密码一样,不要与任何人分享。”

这个 应该是正确的方式......但无法使其正常工作。也许你可以。

答案 1 :(得分:0)

我也在尝试在Chrome扩展程序中添加fb-login功能。我在django app中使用python-socialauth作为facebook的身份验证应用程序,后者是后端。

我遵循的步骤如下:

首先我用facebook登录链接打开了一个窗口:

window.open('https://www.facebook.com/dialog/oauth?client_id=& response_type = token& redirect_uri =,“Facebook登录”,“宽度= 635,身高= 290,左= 0,顶部= 0”)

从成功网址中,我检索了访问令牌并保存在chrome-local-storage中。

然后我将令牌发送到我的django-facebook-login视图。但是它出现了错误:

'Nonetype' object has no attribute 'encode'.

我的代码如下:

if isinstance(request.backend, BaseOAuth1):
        if request.REQUEST.get('backend') == "facebook":
            oauth_token_secret = settings.SOCIAL_AUTH_FACEBOOK_KEY
        if request.REQUEST.get('backend') == "google-oauth2":
            oauth_token_secret = settings.SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET
        token = {
            'oauth_token': request.REQUEST.get('access_token'),
            'oauth_token_secret': oauth_token_secret,
        }
    elif isinstance(request.backend, BaseOAuth2):
        token = request.REQUEST.get('access_token')
    else:
        raise HttpResponseBadRequest('Wrong backend type')

    user = request.backend.do_auth(token, ajax=True)
    # age = request.POST.get('age', '')
    login(request, user)

我遇到错误的行是:     user = request.backend.do_auth(token,ajax = True)