无法通过同一台计算机上的c#中的Facebook api访问用户信息?

时间:2012-02-07 09:42:50

标签: c# asp.net facebook facebook-graph-api

正在发生的事情是用户A登录并提供应用程序访问他/她的数据的权限我们提取他的数据然后..

但问题是当另一个人使用同一台计算机登录他/她的帐户并授予权限时我们会获得用户A的数据而不是B ..

 if(Request.Params["code"] != null)
            {
                Facebook.FacebookAPI api = new Facebook.FacebookAPI(GetAccessToken());
                string me = api.Get("/me");
                string meFriends = api.Get("/me/friends/");
                   }

我通过上面的代码访问用户信息..

我们应该怎么办?

1 个答案:

答案 0 :(得分:2)

SDK将数据保存到会话中是一个已知问题。我对C#并不是100%肯定,但我猜它和PHP一样。 SDK(在PHP中)检查用户的签名请求是否在会话中可用:

  public function getSignedRequest() {
    if (!$this->signedRequest) {
      if (isset($_REQUEST['signed_request'])) {
        $this->signedRequest = $this->parseSignedRequest(
...

每次检查当前用户访问令牌的有效性时,我所做的就是。但有人提到这不是有效的(虽然我倾向于不同意:))。

简而言之,SDK不会检查有效性,并将会话中的数据作为第一个来源。这就是第二个用户拥有第一个用户数据的原因。