c#facebook-apiPostAsync循环馈送

本文关键字:循环 c#facebook-apiPostAsync | 更新日期: 2023-09-27 17:57:45

我正在开发一个facebookasp.net c#应用程序

现在应用程序将用户的accesstoken存储在数据库中,我也会写下我的过期时间和facebookid。

例如,当用户通过身份验证时,我在数据库中存储一条用户的access_token记录,expire=DateTime.UtcNow+5分钟,以及他的facebook id

现在应用程序每1分钟运行一个后台线程。

线程检查每个用户是否过期<DateTime.UtcNow,如果是的话,它会贴在墙上我知道facebook的access_token在大约1小时的中过期

现在我的问题是,有时是帖子,有时不是,它不稳定。

我在一个循环中发布,并使用PostAsync。

代码:

for (int i = 0; i < records.Count; i++)
{
   //init the facebookClient with valid access_token
   Facebook.FacebookClient fbc = new Facebook.FacebookClient(records[i].token_data);
   Dictionary<string, object> post = new Dictionary<string, object>();
   post.Add("message", "my message");
   post.Add("link", "http://mylink/");
   post.Add("picture", "http://somepic.gif");
   post.Add("name", "my app name");
   post.Add("caption", "text text text");
   post.Add("description", "text text text");
   post.Add("actions", "{'"name'":'"Play Now!'", '"link'":'"http://my app page/'"}");
   //the punchline
   fbc.PostAsync(records[i].facebook_id.ToString() + "/feed", post);

 }

现在它冷运行50-100个环路

我对一些用户的测试我发布了,对一些用户没有而不是所有时间。

c#facebook-apiPostAsync循环馈送

如果我理解正确,你每次都在向用户的墙上发送相同的消息?你的问题可能是Facebook。如果你的消息没有变化,Facebook倾向于忽略第二条消息(或者它可能只是简单地添加短语"X个类似的帖子")。

从脸书的角度来看,你试图做的事情听起来很"垃圾"(他们对做这种事情非常苛刻)。如果你在用户墙上写消息,你真的应该问用户是否可以这样做(不,你不必这样做,但这应该与用户在你的应用程序上的活动结合起来…比如发布游戏分数)。如果用户报告你在向他们的墙发送垃圾邮件,你的应用程序将被Facebook删除,所以你可能需要重新思考你想做什么。

(我怀疑这是你想听到的答案,因此我怀疑你是否会把我标记为答案,但如果你的研究证实了我告诉你的,那么最好把我标记成答案……或者至少被另一位读者投票支持)。