C# 无法在FB post中发布图片,此状态更新显示为空白。请写一些东西或附加一个链接或照片来更新您的状态

C# 无法在FB post中发布图片,此状态更新显示为空白。请写一些东西或附加一个链接或照片来更新您的状态,c#,.net,facebook,webbrowser-control,C#,.net,Facebook,Webbrowser Control,我正在尝试使用webbrowser控件在facebook页面上发布图片和文本 我在文本区域粘贴一个url,当它得到缩略图时,我发送键(ctrl+a)。然后通过send键发送文本。send(…) 在单击“发布”按钮之前,一切正常 这是错误的 "This status update appears to be blank. Please write something or attach a link or photo to update your status." 我已尝试设置Textarea的

我正在尝试使用webbrowser控件在facebook页面上发布图片和文本

我在文本区域粘贴一个url,当它得到缩略图时,我发送键(ctrl+a)。然后通过send
键发送文本。send(…)
在单击“发布”按钮之前,一切正常 这是错误的

"This status update appears to be blank. Please write something or attach a link or photo to update your status."
我已尝试设置Textarea的所有属性,如标题、内部文本和占位符,我确信文本区域也不为空

HtmlElement elementTextArea = null;
HtmlElementCollection elemss = webBrowser1.Document.GetElementsByTagName("textarea");
foreach (HtmlElement elem in elemss)
{
    if (elem.GetAttribute("name") == "xhpc_message")
    {
        elementTextArea = elem;
        break;
    }
}
elementTextArea.Focus();
Print("\nSet Focused\n");

SendText(url);

webBrowser1.Update();
DoWait(4);

SendText("^(a)");
SendText(text);
webBrowser1.Update();

elementTextArea = webBrowser1.Document.GetElementById(id);

elementTextArea.InnerText += "\nINNER TEXT";
Print("\nAdded Inner Text ABCD\n");

//elementTextArea.SetAttribute("placeholder", text + "PLACEHOLDER");
//Print("\nAdded place holder text abcd \n");

/*            
HtmlElementCollection elems = webBrowser1.Document.GetElementsByTagName("input");
foreach (HtmlElement elem in elems)
{
    if (elem.GetAttribute("className").Equals("mentionsHidden"))
    {
        Print("\nAdded Second Text\n");
        elem.SetAttribute("value", text+"");
        break;
    }
}
*/

DoWait(3);

HtmlElementCollection elements = webBrowser1.Document.GetElementsByTagName("button");
foreach (HtmlElement element in elements)
{
    if (element.GetAttribute("className") == "_42ft _4jy0 _11b _4jy3 _4jy1 selected _51sy")
    {
        Print("\nPost Button Found\n");
        element.Focus();

        Print("\nFocus1\n");

        DoWait(2);

        SendText("~");

        element.InvokeMember("click");

        Print("\nClicked1\n");

请帮帮我,花了这么多时间

提交帖子时,除了其他变量外,还包括:

clp:{"cl_impid":"eeeeeeee","clearcounter":0,"elementid":"v_1_2n","version":"x","parent_fbid":1000000000000}
xhpc_message_text:
xhpc_message:
如果您查看页面的源代码,则上面的
\u text
字段是textarea下的一个隐藏字段,它似乎反映了相同的值。并且,当文本区域最初被单击时,作为隐藏字段的
clp
也会被调整

您必须准确地复制提交的每个字段,克隆会话,然后希望他们不要通过重命名字段来更改内容,或者更糟糕的是,添加另一个字段,该字段的名称基于唯一id并随机放置在代码中


所以,简而言之,你可以考虑使用他们的API,即使是愚蠢的“我是你爸爸”的规则,他们现在已经有了权限。这可能会帮你省去一些严重的头痛

你试过模拟键盘输入吗?我猜,但可能是FB正在检查您的输入(url等),如果您只是“正常”添加它,检查就会失败