我目前正在使用FB SDK 3.5编写IOS应用程序。
我创建了一个可以使用以下代码创建“用户拥有的对象”的应用程序:
NSMutableDictionary<FBOpenGraphObject> *object = [FBGraphObject openGraphObjectForPost];
object.provisionedForPost = YES;
object[@"type"] = @"fbltest:Highscore";
object[@"title"] = @"New high score";
object[@"privacy"] = @"EVERYONE";
object[@"data"][@"leaderboard"] = @"0";
object[@"data"][@"score"] = @"266";
[FBRequestConnection startForPostOpenGraphObject:object
completionHandler:^(FBRequestConnection *connection, id result, NSError *error)
{
// DO STUFF HERE
}];
我在Object调试器中测试了对象,所有内容似乎都是有序的。我还可以使用以下代码检索用户对象列表:
FBRequestConnection* connection = [[FBRequestConnection alloc] init];
FBRequest* request = [[FBRequest alloc] initWithSession:FBSession.activeSession graphPath:@"me/objects/fbltest:highscore"];
[connection addRequest:request
completionHandler:^(FBRequestConnection *connection, id result, NSError *error)
{
// DO STUFF HERE
}];
[connection start];
现在我要做的是检索用户朋友对象的列表,最初我获得了一个朋友列表,然后使用以下路径来检索那些对象的列表:“/ objects / fbltest:highscore” 。这没有任何回报。
然后我尝试使用以下开放图形路径查询Facebook开放图表,但没有成功: “我/朋友/ fbltest:高分 “我/朋友/对象/ fbltest:高分” “我/朋友限制= 10安培;对象/ fbltest:高分”
一些说明: 对于测试环境,我使用3个测试用户,他们彼此都是朋友。 我已经禁用了脸谱APP的“沙盒环境”参数。
任何帮助都会非常感激,即使它只是确认可以阅读朋友自托管对象。
答案 0 :(得分:2)
我一直在尝试做同样的事情(查询朋友的用户拥有的对象),但只是间接地管理它。我本来期望/<userid>/objects/myapp:score
能够正常工作,但我没有得到任何数据。
但是,工作的是查询朋友的自定义操作,而不是对象。例如。:
/<userid>/myapp:actiontype
。
从动作中,您可以获得关联的对象; ids,您可以简单地将其查询为/<objectid>
。
这看起来像是一种迂回的做事方式,因为这意味着您需要为您创建的每个得分对象创建关联的操作,即使您只是使用该对象进行数据存储。如果您不希望它进入用户的时间线,您可以设置no_feed_story
属性以隐藏它。然后,如果用户明确想要分享分数,可能会有额外的“正常”动作类型? (我认为只要一个物体可见,对物体的多个动作就可以了。)
每当您创建一个用户拥有的对象时,似乎还会创建一个隐式og.posts
操作,因此您也可以通过该查询进行查询,但是您必须过滤专门针对的“帖子”你的对象类型。