我正在尝试使用Facebook的Javascript SDK在Chrome扩展程序的popup.html
页面中实现登录按钮。
但是,当我调用FB.login()
函数时,出现以下错误:Given URL is not allowed by the Application configuration
。现在,由于它是Chrome扩展程序,我不确定是否可以为其提供网址或域名。
那么,在这种情况下我该怎么办?
答案 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)