我有这种模式,可以在Facebook上发送/发布消息/文本到我的组页面:
private string PostFacebookWall(string accessToken, string message)
{
var responsePost = "";
try
{
var objFacebookClient = new FacebookClient(accessToken);
var parameters = new Dictionary<string, object>();
parameters["message"] = message;
responsePost = objFacebookClient.Post("/" + GroupId + "/feed", parameters).ToString();
}
catch (Exception ex)
{
responsePost = "Facebook Posting Error Message: " + ex.Message;
}
return responsePost;
}
然后我有一个检查方法,确保不要发布两次相同的消息/文本:
private Hashtable alreadyPost = new Hashtable();
private void PostMessage()
{
for (int i = 0; i < ScrollLabel._lines.Length; i++)
{
for (int x = 0; x < WordsList.words.Length; x++)
{
if (ScrollLabel._lines[i].Contains(WordsList.words[x]) && !alreadyPost.ContainsKey(ScrollLabel._lines[i]))
{
lineToPost = ScrollLabel._lines[i];
string testline = lineToPost + Environment.NewLine + ScrollLabel._lines[i + 1];
PostFacebookWall(AccessPageToken, testline + Environment.NewLine + Environment.NewLine + "נשלח באופן אוטומטי כניסיון דרך תוכנה");
alreadyPost.Add(lineToPost, true);
numberofposts += 1;
label7.Text = numberofposts.ToString();
}
}
}
}
然后我有一个计时器打勾,我更新文本,并每10秒发布一次消息/文本:
private void timer1_Tick(object sender, EventArgs e)
{
counter += 1;
label9.Text = counter.ToString();
label9.Visible = true;
if (counter == 10)
{
scrollLabel1.Reset();
scrollLabel1.Text = " ";
scrollLabel1.Invalidate();
this.scrollLabel1.Text = combindedString;
scrollLabel1.Invalidate();
counter = 0;
PostMessage();
}
}
问题是当我一遍又一遍地运行progrem时,它会继续发布相同的帖子,因为它知道我的组页面上已存在哪些帖子。 我需要找到一些如何检查/获取我的Facebook中我的组页面上已经存在的帖子,然后每次运行程序到列表时添加这些帖子:alreadyPost所以它不会每次都反复发布它们我再次关闭并运行该程序。
我可以将List已经发布的内容写入文本文件并将文本文件读回到构造函数列表中,但是请确保或检查我的组页面上是否已存在帖子。
我该如何解决?问题是如何知道我的组页面上是否存在已发布的帖子。不,如果我的程序发送了它或者它们是否已成功发送,但如果它们在我的组页面中,那么当我再次运行程序时不要再发布它。