iOS 上 Facebook 页面的 Graph API 排序
Posted
技术标签:
【中文标题】iOS 上 Facebook 页面的 Graph API 排序【英文标题】:Sorting Through Graph API of Facebook Page on iOS 【发布时间】:2015-07-17 03:24:08 【问题描述】:我正在使用:
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);
];
这给了我一个来自 Facebook 页面的所有数据(我的意思是所有数据)的 JSON 字符串。它给了我帖子、喜欢帖子的人的 ID、每条评论、每个分享的人。我真的只需要帖子本身,它在 JSON 结果中列为“消息”。有什么方法可以在 API 调用中执行此操作,还是必须在之后执行?
另外, 有没有办法让它拉出与每个帖子相关的图片?我知道如何将照片发布到页面,但我只想查看发布到页面的帖子,并让它也拉出图片。
【问题讨论】:
【参考方案1】:您可以按如下方式过滤掉 Feed 响应
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,
中得到了这个【参考方案2】:
使用
/page_id/feed?fields=id,message
对于 Graph API v2.4,这将是您必须指定每个字段的标准用法。
【讨论】:
有没有办法让它拉出与每个帖子相关的图片?我知道如何将照片发布到页面,但我只想查看发布到页面的帖子,并让它也拉出图片。【参考方案3】:这个,就是你想要的 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
【讨论】:
以上是关于iOS 上 Facebook 页面的 Graph API 排序的主要内容,如果未能解决你的问题,请参考以下文章
facebook graph Api:在页面上发布:权限问题
facebook graph api - 在页面上获取用户发布的图像