我目前正在使用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'目前位于我的网站根目录中,与调用它的页面相同.
嘿 Robert,不确定这是否是导致此问题的原因,但在示例 1 中,您似乎尝试在 JPG 名称上使用字符串文字,但如果是这样,则 @ 符号需要位于引号之外...
@“早上好” // 字符串文字
| 归档时间: |
|
| 查看次数: |
1102 次 |
| 最近记录: |