升级我的应用。目标是iOS5.1。 Xcode 4.5.2并使用FacebookSDK 3.0和Twitter Frameworks。 应用程序正在登录Facebook而没有问题。当我尝试发布帖子时,我会在日志中返回:
2012-12-18 10:39:31.934 MyApp[31754:1d603] Error Domain=com.facebook.sdk Code=5
"The operation couldn’t be completed. (com.facebook.sdk error 5.)"
UserInfo=0xab74630 {com.facebook.sdk:ParsedJSONResponseKey={
body = {
error = {
code = 100;
message = "(#100) Missing message or attachment";
type = OAuthException;
};
};
code = 400;
}, com.facebook.sdk:HTTPStatusCode=400}
2012-12-18 10:39:31.935 MyApp[31754:1d603] (null)
最后一行是日志表达式的结果,用于列出下面列出的“publishStory”方法中的“postParams”。请注意,它是(null)。 模拟器中的错误结果是“error:domain = com.facebook.sdk,code = 5”
我使用Facebook教程构建FB界面。我已经在initWithNibName中列出了参数,就像教程所示。
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// this stuff will change... just get it working
self.postParams = [[NSMutableDictionary alloc] initWithObjectsAndKeys:
@"Share...", @"message",
@"http://MyApp.com", @"link",
@"icon.png", @"picture",
@"MyApp", @"name",
@"A wonderful way to record your life events.", "caption",
@"Easy to use.", @"description",
nil];
}
return self;
}
然后,“发布”是一个单独的方法,它停止的地方,我得到上述错误。
- (void)publishStory
{
[FBRequestConnection
startWithGraphPath:@"me/feed"
parameters:_postParams
HTTPMethod:@"POST"
completionHandler:^(FBRequestConnection *connection,
id result,
NSError *error) {
NSString *alertText;
if (error) {
NSLog(@"%@",error);
NSLog(@"%@", _postParams);
alertText = [NSString stringWithFormat:
@"error: domain = %@, code = %d",
error.domain, error.code];
} else {
alertText = [NSString stringWithFormat:
@"Posted action, id: %@",
[result objectForKey:@"id"]];
}
// Show the result in an alert
[[[UIAlertView alloc] initWithTitle:@"Result"
message:alertText
delegate:self
cancelButtonTitle:@"OK!"
otherButtonTitles:nil]
show];
}];
}
我认为,实际的参数不会上传。我一直在寻找寻找解决方案的几天。 任何人都知道如何解决这个问题并完成帖子?任何帮助将不胜感激!
答案 0 :(得分:1)
我有一个类似的问题,但我的问题是 postParams 没有保留,因为我没有使用属性,我在同一个发布方法中创建postParams。这些参数需要保留在课堂的某个地方。
确保您的属性正在使用retain,同时确保调用init方法。