Не можете получить доступ к пользовательской информации через Facebook API в C # на том же компьютере? - PullRequest
0 голосов
/ 07 февраля 2012

Происходит то, что, скажем, пользователь 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 Ответ

2 голосов
/ 01 марта 2012

Это известная проблема с SDK, сохраняющим данные в сеансе. Я не уверен на 100% в C #, но думаю, что он такой же, как PHP. SDK (в PHP) проверяет, доступен ли подписанный запрос пользователя в сеансе:

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

Я каждый раз проверяю действительность токена доступа текущего пользователя. Но кто-то упомянул, что это не эффективно (хотя я склонен не соглашаться :)).

Короче говоря, SDK не проверяет правильность и принимает данные из сеанса в качестве первого источника. Вот почему второй пользователь имеет данные первого пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...