Pwn*_*ner 2 cocoa-touch facebook objective-c facebook-graph-api
我试图在iOS中设置Facebook帖子的隐私.通过此设置,您可以指定是希望每个人,您的朋友还是仅您看到该帖子.在我添加观众设置之前,一切正常.添加后,代码在FBRequestConnection行上出现此错误:
-[__NSDictionaryI length]: unrecognized selector sent to instance
Run Code Online (Sandbox Code Playgroud)
这是相关的代码.我调试并确保传递给Facebook的所有参数都不是零和合理的.我不确定这是Facebook问题还是Objectice-C问题.
- (void)postMessage:(NSString *)message url:(NSURL *)url thumbnail:(NSURL *)thumbnail audience:(SocialNetworkAudience)audience
{
NSString* privacy;
switch (audience) {
case SocialNetworkAudiencePrivate:
privacy = @"SELF";
break;
case SocialNetworkAudienceProtected:
privacy = @"ALL_FRIENDS";
break;
case SocialNetworkAudiencePublic:
privacy = @"EVERYONE";
break;
}
[FBRequestConnection
startWithGraphPath:@"/me/feed"
parameters:@{
@"description": message,
@"link": url.absoluteString,
@"picture": thumbnail.absoluteString,
@"privacy": @{
@"value": privacy
}
}
HTTPMethod:@"POST"
completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
}
];
}
Run Code Online (Sandbox Code Playgroud)
我尝试了一堆随机的东西,发现隐私参数应该是一个字符串.从逆向工程,我相信Facebook会在发出请求之前检查每个参数的长度.太糟糕的Facebook从未记录过这一点.
例:
@"privacy": @"{'value': 'SELF'}"
Run Code Online (Sandbox Code Playgroud)