如何在iOS中设置Facebook帖子的隐私?

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)

Pwn*_*ner 8

我尝试了一堆随机的东西,发现隐私参数应该是一个字符串.从逆向工程,我相信Facebook会在发出请求之前检查每个参数的长度.太糟糕的Facebook从未记录过这一点.

例:

@"privacy": @"{'value': 'SELF'}"
Run Code Online (Sandbox Code Playgroud)