我们正在构建一个应用程序,其部分功能是尝试捕获与用户拥有的特定视频相关联的相似数量。
要求应用程序的用户进行扩展的离线访问,我们会为每个用户捕获密钥:
格式如下:2.hg2QQuYeftuHx1R84J1oGg __。XXXX.1272394800 -nnnnnn
每个用户的脱机/无限密钥都存储在数据库的表中。我们感兴趣的object_id也存储在DB中。
在稍后阶段(离线),我们尝试运行批处理作业,该作业读取每个用户视频的喜欢数量。 (见附件)
出于某种原因,在循环的第一次迭代之后 - 正确地产生了类似的东西,我们得到了一个如此熟悉的消息失败:
“会话密钥无效或不再有效”
非常感谢任何见解。
谢谢,
乙
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;
}
答案 0 :(得分:0)
您说您已经要求用户进行扩展的离线访问,但是通过查看您的访问令牌,它并不长久。你的令牌是2.hg2QQuYeftuHx1R84J1oGg __。XXXX.1272394800 -nnnnnn,在其中,“1272394800”是到期纪录时间。