Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用C#代码发布到facebook群组_C#_Facebook_Post - Fatal编程技术网

使用C#代码发布到facebook群组

使用C#代码发布到facebook群组,c#,facebook,post,C#,Facebook,Post,我正在开发一个windows应用程序,其中嵌入了webbroswercontrol。我试图将示例消息发布到一个开放的facebook群组。我无法用c#更改文本框的值。当我自动点击时,它会显示文本框值为空。解决办法是什么 1) 我建议您确保textbox为null,而不是textbox.InnerText。通常元素的内部文本为空,因此最好检查“占位符”属性并使用以下内容更新代码: // if (textBox.InnerText.Trim() == "Write something...") i

我正在开发一个windows应用程序,其中嵌入了webbroswercontrol。我试图将示例消息发布到一个开放的facebook群组。我无法用c#更改文本框的值。当我自动点击时,它会显示文本框值为空。解决办法是什么


1) 我建议您确保textbox为null,而不是textbox.InnerText。通常元素的内部文本为空,因此最好检查“占位符”属性并使用以下内容更新代码:

// if (textBox.InnerText.Trim() == "Write something...")
if (textBox.GetAttribute("placeholder") == "Write something...")
2) 此代码不设置该值。它获取值并与“测试消息”进行比较

只需使用SetValue即可

textBox.SetAttribute("value", "Test message");
3) 确保在加载页面后执行所有操作

public SomeFormName()
{
    ...
    webBrowser.DocumentCompleted += webBrowser_DocumentCompleted;
}

void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs args)
{
    // put your code here
}
4) 不确定FindControlByName是如何工作的,因此请检查一个简单的LINQ查询以确保找到textbox

var textbox = webBrowser.Document.All.OfType<HtmlElement>()
    .Where(item => item.Name == "xhpc_message")
    .FirstOrDefault()
;
var textbox=webBrowser.Document.All.OfType()
.Where(item=>item.Name==“xhpc_消息”)
.FirstOrDefault()
;

在对代码进行注释后,在单独的函数中完全触发文档完成事件后,使用下面的代码。webbrowser中的URL应该包含要发布文章的组页面

private void AfteDocumentLoads()
    {
        HtmlElementCollection textBox = webBrowser.Document.GetElementsByTagName("textarea").GetElementsByName("xhpc_message");
        HtmlElementCollection button = webBrowser.Document.GetElementsByTagName("button");

        foreach (HtmlElement element in textBox)
        {
            foreach (HtmlElement btnelement in button)
            {
                if (btnelement.InnerText == "Post")
                {
                    element.Focus();
                    element.InnerText = txtPortalUserId.Text.ToString();
                    btnelement.InvokeMember("Click");
                }
            }
        }
    }
我也被卡住了,因为它没有更早发布,因为我使用WebBrowser类来获取当前的WebBrowser。结果是,文本作为“模糊”注释输入到组中。即使我在FB页面上手动点击,它也会说“这个状态更新似乎是空白的。请写一些东西或附加一个链接或照片来更新您的状态。”


我使用了页面的webbrowser&它工作了,因为它以正确的方式出现在页面上。LOC中也有一些变化

注释文本框代码并尝试传递硬编码字符串值。同时,我将尝试找到解决方法…您可以使用
element.SetAttribute(“Value”,string)我用一个按钮来调用函数,而不是'element.InnerText`@Chandana,如果你想的话,你可以稍后自动调用它。
public SomeFormName()
{
    ...
    webBrowser.DocumentCompleted += webBrowser_DocumentCompleted;
}

void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs args)
{
    // put your code here
}
var textbox = webBrowser.Document.All.OfType<HtmlElement>()
    .Where(item => item.Name == "xhpc_message")
    .FirstOrDefault()
;
private void AfteDocumentLoads()
    {
        HtmlElementCollection textBox = webBrowser.Document.GetElementsByTagName("textarea").GetElementsByName("xhpc_message");
        HtmlElementCollection button = webBrowser.Document.GetElementsByTagName("button");

        foreach (HtmlElement element in textBox)
        {
            foreach (HtmlElement btnelement in button)
            {
                if (btnelement.InnerText == "Post")
                {
                    element.Focus();
                    element.InnerText = txtPortalUserId.Text.ToString();
                    btnelement.InvokeMember("Click");
                }
            }
        }
    }