无法在同一台计算机上通过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/");
}
我正在通过上面的代码访问用户信息。。
我们该怎么办?
这是SDK将数据保存到会话中的已知问题。我不能百分之百肯定C#,但我想它和PHP是一样的。SDK(在PHP中)检查用户的签名请求是否在会话中可用:
public function getSignedRequest() {
if (!$this->signedRequest) {
if (isset($_REQUEST['signed_request'])) {
$this->signedRequest = $this->parseSignedRequest(
...
我所做的是每次检查当前用户的访问令牌的有效性。但有人提到这并不有效(尽管我倾向于不同意:)。
简而言之,SDK不检查有效性,而是将会话中的数据作为第一个源。这就是为什么第二个用户拥有第一个用户数据的原因。