2
这里是我使用的C#的Facebook的SDK 6.8.0从的NuGet测试配料代码:为什么Facebook发布批次与GraphBatchException - #0失败?
var client = new FacebookClient();
client.AppId = application.FacebookAppId;
client.AppSecret = application.FacebookAppSecret;
var batchedRequests = new List<FacebookBatchParameter>();
batchedRequests.Add(new FacebookBatchParameter()
{
HttpMethod = HttpMethod.Post,
Path = "2982XXXXXXXXXX001/feed",
Parameters = new Dictionary<string, object>
{
{"access_token", "CAAK9UGtbUaMBAKX..."},
{"message", "Check out our stuff at Google: " + DateTime.UtcNow.Ticks},
{"link", "http://www.google.com"}
}
});
batchedRequests.Add(new FacebookBatchParameter()
{
HttpMethod = HttpMethod.Post,
Path = "755XXXXXXXXXX21/photos",
Parameters = new Dictionary<string, object>
{
{"access_token", "CAAK9UGtbUaMBAA6..."},
{"message", "Lions, oh my! " + DateTime.UtcNow.Ticks},
{"url", "http://i.imgur.com/DVSsmpa.jpg"}
}
});
batchedRequests.Add(new FacebookBatchParameter()
{
HttpMethod = HttpMethod.Post,
Path = "2982XXXXXXXXXX001/feed", // Same as first
Parameters = new Dictionary<string, object>
{
{"access_token", "CAAK9UGtbUaMBAKX..."}, // Same as first
{"message", "Check out our stuff at Facebook: " + DateTime.UtcNow.Ticks},
{"link", "http://www.facebook.com"}
}
});
var batchedParams = new Dictionary<string, object>();
batchedParams.Add("access_token", defaultPage.PageAccessToken);
dynamic facebookResponse = client.Batch(batchedRequests.ToArray(), batchedParams);
如果我注释掉三个batchedRequests.Add()中的任何一个要求,它工作正常。
只有三者在一起才会被打破。
这是我得到的错误:
Unhandled Exception: Facebook.FacebookApiException: (GraphBatchException - #0) Batch parameter must be a JSON array
at Facebook.FacebookClient.ProcessResponse(HttpHelper httpHelper, String responseString, Type resultType, Boolean containsEtag, IList`1 batchEtags)
at Facebook.FacebookClient.Api(HttpMethod httpMethod, String path, Object parameters, Type resultType)
at Facebook.FacebookClient.Post(String path, Object parameters)
at Facebook.FacebookClient.Post(Object parameters)
at Facebook.FacebookClient.Batch(FacebookBatchParameter[] batchParameters, Object parameters)
at FacebookTest.Program.FacebookBatchTest() in c:\Test\Program.cs:line 81
at FacebookTest.Program.Main(String[] args) in c:\Test\Program.cs:line 23
的错误意味着你的批次不正确编码/包/序列化 - 你调试吗? – Igy 2014-10-27 23:34:39
它一次只能运行一个或两个记录,但全部3个都会导致失败。我不确定此时需要包装什么。 – Kcoder 2014-10-27 23:42:35
我怀疑这可能是FacebookClient.Batch()方法如何处理请求的问题,但不幸的是,我没有任何可见性来查看传递给Facebook的URL调用。 – Kcoder 2014-10-27 23:48:26