C#和Facebook API

Rob*_*ert 6 c# facebook

我目前正在使用Facebook API和C#.

我要做的是将图像上传到活动.

我尝试了两种方法,但似乎都没有用.有人可以看看.

方法1

        Dictionary<string, string> args = new Dictionary<string, string>();
        string source = "@test.jpg";
        string relpath = "/1234456789/photos";
        args.Add("message", "sssssss");
        args.Add("access_token", api.AccessToken);
        args.Add("source", source);
        api.Post(relpath, args);
Run Code Online (Sandbox Code Playgroud)

方法2

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(String.Format("http://graph.facebook.com/1234456789/photos")); 
        request.ContentType = "multipart/form-data"; 
        request.Method = "POST";

        string path = HttpUtility.UrlEncode("test.jpg");
        request.BeginGetRequestStream(ar => 
        { 
            using (StreamWriter writer = new StreamWriter((ar.AsyncState as HttpWebRequest).EndGetRequestStream(ar))) 
            { 
                writer.Write("{0}={1}&", "message", HttpUtility.UrlEncode("Test")); 
                writer.Write("{0}=@{1}&", "source", path);
                writer.Write("{0}={1}", "access_token",
                    api.AccessToken); 
            } 
        }, request);
Run Code Online (Sandbox Code Playgroud)

方法3

        WebClient client = new WebClient();

        byte[] responseBinary = client.UploadFile("http://localhost:61689/Widgets/test2.aspx", "POST", @"C:\test.jpg");

        string response = Encoding.UTF8.GetString(responseBinary);

        Dictionary<string, string> args = new Dictionary<string, string>();

        string relpath = "https://graph.facebook.com/me/picture";
        args.Add("message", "sssssss");
        args.Add("access_token", GetAccessToken(code));
        args.Add("source", response); 

        api.Post(relpath, args);
Run Code Online (Sandbox Code Playgroud)

在方法3中,我正在尝试创建响应并写入.我收到了400个不好的请求.

图像'test.jpg'目前位于我的网站根目录中,与调用它的页面相同.

Jes*_*och 1

嘿 Robert,不确定这是否是导致此问题的原因,但在示例 1 中,您似乎尝试在 JPG 名称上使用字符串文字,但如果是这样,则 @ 符号需要位于引号之外...

@“早上好” // 字符串文字