Facebook / Offline Permission - Попытка выполнить действие с набором автономных пользователей - PullRequest
0 голосов
/ 28 апреля 2010

Мы создаем приложение, которое в рамках своей функциональности пытается определить количество лайков, связанных с конкретным видео, принадлежащим пользователю.

Пользователям приложения предлагается расширенный автономный доступ, и мы фиксируем ключ для каждого пользователя:

Формат выглядит следующим образом: 2.hg2QQuYeftuHx1R84J1oGg __. XXXX.1272394800-nnnnnn

Каждый пользователь имеет свой автономный / бесконечный ключ, хранящийся в таблице в БД. Интересующий нас object_id также хранится в БД.

На более позднем этапе (в автономном режиме) мы пытаемся запустить пакетное задание, которое считывает количество лайков для видео каждого пользователя. (См. Прикрепленный код)

По какой-то причине, однако, после первой итерации цикла, которая правильно выдает лайки, мы получаем ошибку с очень знакомым сообщением:

«Ключ сессии недействителен или больше не действителен»

Любое понимание будет наиболее ценно.

Спасибо

B

List<DVideo> videoList = db.SelectVideos();

   foreach (DVideo video in videoList)
   {

    long userId = 0;
    ConnectSession fbSession = new ConnectSession(APPLICATION_KEY, SECRET_KEY);
    //session key is attached to the video object for now.
    fbSession.SessionKey =  video.UserSessionKey;
    fbSession.SessionExpires = false;
    string fbuid =video.FBUID;

    long.TryParse(fbuid, out userId);

    if (userId > 0)
    {
     fbSession.UserId = userId;
     fbSession.Login();
     Api fbApi = new Facebook.Rest.Api(fbSession);

     string xmlQueryResult = fbApi.Fql.Query("SELECT user_id FROM like WHERE object_id = " + video.FBVID);

     XmlDocument xmlDoc = new XmlDocument();
     xmlDoc.Load(new StringReader(xmlQueryResult));
     int likesCount = xmlDoc.GetElementsByTagName("user_id").Count;

     //Write entry in VideoWallLikes
     if (likesCount > 0)
     {
      db.CountWallLikes(video.ID, likesCount);
     }

     fbSession.Logout();
    }

    fbSession = null;
   }

1 Ответ

0 голосов
/ 04 мая 2010

Вы сказали, что запросили у пользователя расширенный автономный доступ, но, глядя на свой токен доступа, он недолговечен. ваш токен 2.hg2QQuYeftuHx1R84J1oGg __. XXXX.1272394800-nnnnnn, в нем «1272394800» - это время истечения срока действия.

...