我在尝试发布到用户的 Facebook 墙上时收到以下错误,但我似乎找不到来源。有人对这个问题有一些见解吗?
2012-08-29 22:14:38.490 CanP[405:707] Error: HTTP status code: 400
2012-08-29 22:14:38.494 CanP[405:707] FBSDKLog: Response <#1111> <Error>:
The operation couldn’t be completed. (com.facebook.sdk error 5.)
将消息发布到 Facebook 墙的运行方法如下:
[FBSettings setLoggingBehavior:[NSSet setWithObjects:
FBLoggingBehaviorFBRequests,
nil]];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
[defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
[defaults synchronize];
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
@"My test app", @"name",
@"http://www.google.com", @"link",
@"FBTestApp app for iPhone!", @"caption",
@"This is a description of my app", @"description",
@"Hello!\n\nThis is a test message\nfrom my test iPhone app!", @"message",
nil];
// Publish.
// This is the most important method that you call. It does the actual job, the message posting.
[facebook requestWithGraphPath:@"me/feed" andParams:params andHttpMethod:@"POST" andDelegate:self];
按照 C Abernathy 的建议,您应该“在错误行放置一个断点并查看错误变量,然后深入到名为 userInfo 的字典,该字典应该包含更具可读性的错误消息。”
对于我们这些测试新 Facebook 集成的人来说,最常见的问题可能会显示在
error.userInfo
"com.facebook.sdk.ParsedJSONResponseKey"
:
message = "(#506) Duplicate status message";
改变用于测试 Facebook 集成的文本,您可能会发现您的代码运行良好!
我建议您使用新的 SDK 3.1 方法进行发帖。
[FBRequestConnection
startWithGraphPath:@"me/feed"
parameters:params
HTTPMethod:@"POST"
completionHandler:^(FBRequestConnection *connection,
id result,
NSError *error) {
if (error) {
/* Handle error */
} else {
/* Handle success */
}
}];
有关分步教程,请参阅:https://developers.facebook.com/docs/howtos/publish-to-feed-ios-sdk/
还要确保您首先请求publish_action权限,以确保您可以发布到墙上。
如果仍然遇到问题,请在错误行放置一个断点并查看错误变量,然后深入到名为 userInfo 的字典,该字典应该包含更具可读性的错误消息。