如何使用FBConnect iPhone下载墙贴

时间:2010-12-04 23:13:02

标签: iphone facebook ios fbconnect

我正在尝试下载用户墙帖。我收到帖子的FB帐户总是会被公开,所以我认为没有必要登录。我似乎无法在FBConnect iOS SDK上找到任何文档,所以我希望这里有人可以帮助我。

最新的SDK正在使用

- (void)requestWithGraphPath:(NSString *)graphPath
               andParams:(NSMutableDictionary *)params
             andDelegate:(id <FBRequestDelegate>)delegate;

从用户图表中获取数据。问题是我不知道可接受的参数是什么或graphPath是什么。我认为图形路径只是www.facebook.com之后的名称,但我不确定。

我想做的是在公共艺术家页面上发布最近20个墙帖。

提前致谢!

哦,如果你知道一个很好的地方可以获得一些非常棒的FBConnect iOS文档。我知道git hub下载页面上有一点点但我希望看到更完整的东西。

更新

我找到了一些不错的文档。 http://developers.facebook.com/docs/reference/api/ 我还发现,如果您只想要发布页面的所有者,请指定/ userID / posts而不是/ userID / feed。

2 个答案:

答案 0 :(得分:2)

  1. 第一个参数确实是@“userid / feed”
  2. 第二个是空的,因为Feed不需要任何参数,所以[NSDictionary dictionary]会很好。
  3. 第三个是对实现FBRequestDelegate协议的类的引用。
  4. 该协议定义了两种方法:

    - (void)request:(FBRequest*)request didLoad:(id)result
    - (void)request:(FBRequest*)request didFailWithError:(NSError*)error
    

    非常简单:结果是数组或字典,具体取决于您的请求,Feed通常是发布的NSArray。

    查看GraphApi文档了解有关graphPath的更多信息。

答案 1 :(得分:0)

我建议你不要使用FBConnect。只需启动NSURLConnection(可能在您的viewDidLoad函数中)并在connectionDidFinishLoading函数中解析Facebook JSON Feed:

- (void)viewDidLoad {
    NSURLRequest *request = [NSURLRequest requestWithURL:
                                 [NSURL URLWithString: [NSString stringWithFormat:@"%@%@/feed", @"http://graph.facebook.com/", @"cocacola"]]];
        [NSURLConnection connectionWithRequest:request delegate:self];
}


- (void)connection:(NSURLConnection*)connection didReceiveResponse:(NSURLResponse*)response {
    [responseData setLength:0];
}

- (void)connection:(NSURLConnection*)connection didReceiveData:(NSData*)data {
    [responseData appendData:data];
}

- (void)connection:(NSURLConnection*)connection didFailWithError:(NSError*)error {
    NSLog(@"Connection failed: %@", [error description]);
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
    SBJsonParser *parser = [[SBJsonParser alloc] init];
    NSString *json = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
    NSDictionary *dictionary = [parser objectWithString:json];

    NSMutableArray *arr = [dictionary mutableArrayValueForKey:@"data"];
    int len = [arr count];
    for(int i = 0; i < len; ++i) {
        NSDictionary *d = [arr objectAtIndex:i];
        [list addObject:d];
    }
    [json release];
    [parser release];
}

其中listNSMutableArraySBJsonParser已导入(json-framework for objective-c,请参阅http://json.org),responseData是{{ 1}}

之后,访问NSMutableData以显示墙贴:

list

如果您想获取用户的个人资料图标,请使用以下命令:

NSString *message= [[list objectAtIndex:0] objectForKey:@"message"];

其中self.profileImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@%@/picture", @"http://graph.facebook.com/", @"cocacola"]]]]; profileImage个对象。

请务必使用相应的用户ID

替换UIImage