0

我正在尝试使用 iOS 6 社交框架检索具有特定字段的朋友列表。我正在使用网址:

NSString *username = [[NSUserDefaults standardUserDefaults] objectForKey:@"fbUserID"];
    NSString *urlString = [NSString stringWithFormat:@"https://graph.facebook.com/%@/friends?fields=id,name,picture", username];
    NSURL *friendsList = [NSURL URLWithString:urlString];

但是该框架似乎会自动将访问密钥附加到它,并且使用“?”来执行此操作。就好像它是第一个 URL 参数一样。更重要的是,API 抱怨它期待语句的结尾而不是?,这在这个错误中很明显:

error =     {
        code = 2500;
        message = "Syntax error \"Expected end of string instead of \"?\".\" at character 15: id,name,picture?access_token=HHyDtnfrjnojngehrtjgnekngeXsI0ZBansnfjDHDhljoQKIfZB5i3JMUHlJIm5HHdwM4s5ixyu38es1vj9XXTcLSS6ZCOi13zQW87dw9YP3DgpllDz5KB6WnSeYGxS9RMfd3npZBwZAEUdmkJHoYlWvflfcQHVwIydLfExjOaNpGZBGhYvb3XlrZAXt7jmDai6FiMoZBRmdOUWfA5vubeNbvvn9y80cPaUPZBZCAZDZD";
        type = OAuthException;
    };

这是框架的正常行为吗?访问令牌通常以这种方式附加吗?如果是这样,我应该如何形成我的 urlString 以便这不是问题?

4

1 回答 1

0

不要将“字段”参数放在 NSURL 中,而是尝试创建一个普通的 NSURL

NSString *urlString = [NSString stringWithFormat:@"https://graph.facebook.com/%@/friends", username];
NSURL *friendsList = [NSURL URLWithString:urlString];

并调用 requestForServiceType:requestMethod:URL:parameters,并传入如下内容:

@{@"fields": @"id,name,picture"}

对于“参数”字段。

于 2013-05-01T20:31:37.080 回答