Facebook开放图 - 获取朋友“用户拥有的对象”

时间:2013-05-02 11:51:58

标签: facebook facebook-graph-api

我目前正在使用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的“沙盒环境”参数。

任何帮助都会非常感激,即使它只是确认可以阅读朋友自托管对象。

1 个答案:

答案 0 :(得分:2)

我一直在尝试做同样的事情(查询朋友的用户拥有的对象),但只是间接地管理它。我本来期望/<userid>/objects/myapp:score能够正常工作,但我没有得到任何数据。

但是,工作的是查询朋友的自定义操作,而不是对象。例如。: /<userid>/myapp:actiontype

从动作中,您可以获得关联的对象; ids,您可以简单地将其查询为/<objectid>

这看起来像是一种迂回的做事方式,因为这意味着您需要为您创建的每个得分对象创建关联的操作,即使您只是使用该对象进行数据存储。如果您不希望它进入用户的时间线,您可以设置no_feed_story属性以隐藏它。然后,如果用户明确想要分享分数,可能会有额外的“正常”动作类型? (我认为只要一个物体可见,对物体的多个动作就可以了。)

每当您创建一个用户拥有的对象时,似乎还会创建一个隐式og.posts操作,因此您也可以通过该查询进行查询,但是您必须过滤专门针对的“帖子”你的对象类型。