无法在FB帖子中发布图片,此状态更新似乎为空白.请写一些内容或附上链接或照片以更新您的状态

Cha*_*lie 6 .net c# facebook webbrowser-control

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

我在文本区域粘贴一个URL,当它获得缩略图时我发送密钥(ctrl + A).然后发送文本通过发送keys.Send(...) 所有工作正常,直到单击发布按钮它给出错误

"This status update appears to be blank. Please write something or attach a link or photo to update your status."
Run Code Online (Sandbox Code Playgroud)

我试图设置Textarea的所有属性,如标题,内部文本和占位符,我确信Text区域也不是null.

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");
Run Code Online (Sandbox Code Playgroud)

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

小智 1

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

clp:{"cl_impid":"eeeeeeee","clearcounter":0,"elementid":"v_1_2n","version":"x","parent_fbid":1000000000000}
xhpc_message_text:
xhpc_message:
Run Code Online (Sandbox Code Playgroud)

如果您查看页面的源代码,_text上面的字段是文本区域下的隐藏字段,它似乎反映了相同的值。并且,当最初单击文本区域时,clp隐藏字段也会被调整。

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

所以,简而言之,你就可以了,但你可能想考虑使用他们的 API,即使有愚蠢的“我是你爸爸”,他们现在已经制定了权限规则......这可能会为你省去一些严重的麻烦!