相关疑难解决方法(0)

FB.logout()在没有访问令牌的情况下调用

我正试图退出我用Facebook集成创建的网站.登录工作正常,但是当我想要注销时,Firebug一直给我这个错误:

FB.logout() 没有访问令牌调用.

我正在使用Facebook JavaScript SDK,我必须注销的代码如下所示:

$(document).ready($(function () {
    $("#fblogout").click(facebooklogout);
}));

function facebooklogout() {
    FB.logout(function (response) {
    }
)};
Run Code Online (Sandbox Code Playgroud)

这是在Facebook开发人员文档中指定的注销代码,只是在document.ready上分配了一个按钮

在此代码之前我有FB.init()方法,一切运行正常.

如果有人知道为什么FB.logout没有访问令牌,那么我们将不胜感激.

javascript facebook facebook-javascript-sdk

33
推荐指数
3
解决办法
5万
查看次数

facebook-oauth目前的纯python解决方案?

看起来我并不是唯一一个试图完全避免使用OAuth 2.0服务器端的解决方案的人.人们可以做任何事情,但他们无法注销:

Facebook Oauth退出

使用facebook图api的Oauth注销

Facebook OAuth2 Logout不会删除fb_ cookie

OAuth 2.0与Facebook 的官方文档说:

您可以通过将用户指向以下URL来将用户从Facebook会话中注销:

https://www.facebook.com/logout.php?next=YOUR_URL&access_token=ACCESS_TOKEN

YOUR_URL必须是您的站点域中的URL,如Developer App中所定义.

我想做所有服务器端,我发现建议的链接方式离开cookie,以便注销链接不起作用: https://www.facebook.com/logout.php?next=http://{{host}}&access_token={{current_user.access_token}} 它确实重定向,但它不会将用户从我的网站中注销.它似乎是一个Heisenbug,因为这改变了我,并没有太多的文件.无论如何我似乎能够通过操纵cookie的处理程序来实现功能,这样实际上用户就会被注销:

class LogoutHandler(webapp2.RequestHandler):
    def get(self):
        current_user = main.get_user_from_cookie(self.request.cookies, facebookconf.FACEBOOK_APP_ID, facebookconf.FACEBOOK_APP_SECRET)
        if current_user:
          graph = main.GraphAPI(current_user["access_token"])
          profile = graph.get_object("me")
          accessed_token = current_user["access_token"] 
        self.set_cookie("fbsr_" + facebookconf.FACEBOOK_APP_ID, None, expires=time.time() - 86400)
        self.redirect("https://www.facebook.com/logout.php?next=http://%s&access_token=%s" get_host(), accessed_token)
    def set_cookie(self, name, value, expires=None):
        if value is None:
            value = 'deleted'
            expires = datetime.timedelta(minutes=-50000)
        jar = Cookie.SimpleCookie()
        jar[name] = value
        jar[name]['path'] = '/'
        if expires:
            if isinstance(expires, datetime.timedelta): …
Run Code Online (Sandbox Code Playgroud)

python google-app-engine facebook facebook-graph-api facebook-oauth

8
推荐指数
1
解决办法
815
查看次数