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

本文关键字:中的 Facebook api 信息 用户 访问 计算机 一台 | 更新日期: 2023-09-27 18:23:49

假设用户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/");
                   }

我正在通过上面的代码访问用户信息。。

我们该怎么办?

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

这是SDK将数据保存到会话中的已知问题。我不能百分之百肯定C#,但我想它和PHP是一样的。SDK(在PHP中)检查用户的签名请求是否在会话中可用:

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

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

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