在iOS上整理Facebook页面的图形API

8

我正在使用:

if ([FBSDKAccessToken currentAccessToken]) {
        [[[FBSDKGraphRequest alloc] initWithGraphPath:@"/v2.3/ID/feed" parameters:nil]
         startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
             if (!error) {
                 NSLog(@"fetched user:%@", result);
             }
         }];
    }   

这给我提供了一个包含所有数据的 JSON 字符串(我是说全部),包括帖子、点赞帖子的人的 ID、每条评论以及分享帖子的每个人。我只需要帖子本身,它在 JSON 结果中被列为“message”。是否可以在 API 调用中完成此操作,还是必须在之后进行?
另外,有没有办法让它获取与每个帖子相关联的图片?我知道如何获取发布到页面上的照片,但我只想查看发布到页面上的帖子,并且也要拉出图片。
3个回答

4

使用

/{page_id}/feed?fields=id,message

使用Graph API v2.4时,这将是您必须指定每个字段的标准用法。


有没有办法让它获取与每篇帖子相关联的图片?我知道如何获取发布到页面上的照片,但我只想查看发布到页面上的帖子,并且也能够显示图片。 - user717452

4
您可以按如下方式筛选出反馈响应。
if ([FBSDKAccessToken currentAccessToken]) {
    [[[FBSDKGraphRequest alloc] initWithGraphPath:@"/v2.3/ID/feed" parameters:[NSMutableDictionary dictionaryWithObject:@"id, message, link.picture" forKey:@"fields"]]
     startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
         if (!error) {
             NSLog(@"fetched user:%@", result);
         }
     }];
}   

您可以查看,我已经提到了需要获取筛选出的信息所需的参数。
注意: 您可以根据自己的要求筛选内容。
请查看以下链接以了解Facebook SDK上可用的过滤器可能性。
https://developers.facebook.com/docs/graph-api/reference/v2.3/user/feed
希望这会对您有所帮助,不确定您想要获取的图片,但也许在“fields”中的“link.picture”可以帮助您获得想要的图片。


收到以下错误消息 Error Domain=com.facebook.sdk.core Code=8 "The operation couldn’t be completed. (com.facebook.sdk.core error 8.)" UserInfo=0x7fb90d82ae20 {com.facebook.sdk:FBSDKGraphRequestErrorCategoryKey=0, com.facebook.sdk:FBSDKGraphRequestErrorHTTPStatusCodeKey=400, com.facebook.sdk:FBSDKErrorDeveloperMessageKey=Syntax error "Expected "(", got end of string" at character 25: id, message, link.picture, - user717452

1
这是你想要的NSString变量“link”:
if ([FBSDKAccessToken currentAccessToken]) {
    FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:nil];
    [request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
         if (!error) {
             NSDictionary *userData = (NSDictionary *)result;
             NSString *facebookID = userData[@"id"];
             NSString *link = userData[@"link"];
             NSString *locale = userData[@"locale"];
             NSString *timezone = userData[@"timezone"];
             NSString *last_name = userData[@"last_name"];
             NSString *email = userData[@"email"];
             NSString *gender = userData[@"gender"];
             NSString *first_name = userData[@"first_name"];

         } else if (error) {
             //tbd
         }
     }];
} else if (![FBSDKAccessToken currentAccessToken]) {
    //tbd
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接