2010-05-19 58 views
1

简短的问题是: 如何使用图形api oauth重定向机制来验证用户并保存检索到的access_token并在需要时也使用javascript SDK(问题是JavaScript SDK将有不同初始化时的access_token)。Facebook图形API认证的画布应用程序和跟踪会话

我最初设置了我的facebook iframe canvas应用程序,并带有单一登录。这适用于图形api,因为我能够在检测到sessionchange(用户登录)时使用由facebook的javascript保存的access_token。

但是,我宁愿不做单点登录。但是,使用图形api重定向并强制用户发送到权限对话框。但是,如果他已经给予权限,我不应该重定向用户。如何处理这个?

另一个问题: 我已经完成了图形API重定向认证,并已检索access_token也。但是,如果我想用javascript调用FB.ui来做stream.Publish呢?我想它会使用它自己的access_token,它是在FB.init期间设置并检测会话。所以,我在这里寻找一些路径。如何使用图形API进行身份验证,并在需要时使用Facebook的JavaScript SDK。

P.S.我正在使用ASP .NET MVC 2.我开发了一个验证过滤器,它需要检测用户的身份验证状态和重定向(目前它是这样做的,以绘制api授权url)

回答

1

我一直在努力Graph API的.NET客户端名为FBGraph.NET。我还没有足够的时间让它进入发布状态,但是你仍然可以直接使用现有的代码,或者作为你正在尝试做什么的参考。

具体而言,FBFraphAuthorizeAttribute,FBGraphAuthenticationHelperFBGraphAuthorizationHelper

身份验证/授权系统设置为与ASP.NET窗体身份验证分开,因此您可以单独为他们使用,也可以使用FBGraph Facebook授权直接替换Forms身份验证。它会自动重定向用户,并提示授权/扩展权限,如果他们还没有授予他们。

我还没有任何东西可以帮助在服务器端代码和JS SDK之间工作,但我认为访问令牌应该是可以互换的。如果最终按原样使用客户端,则应该能够在IFloringContext上设置任何标记,并相反将访问令牌生成的服务器端传递给客户端。