【问题标题】:Facebook open graph - Get friends "User-owned objects"Facebook 开放图 - 交朋友“用户拥有的对象”
【发布时间】:2013-05-02 11:51:58
【问题描述】:

我目前正在使用 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
     }];

我在对象调试器中测试了对象,一切似乎都井井有条。我还可以使用以下代码检索用户对象列表:

    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:高分” "me/friends?limit=10&objects/fbltest:highscore"

一些注意事项: 对于测试环境,我使用了 3 个测试用户,他们都是彼此的朋友。 我已禁用 facebook APP 的“沙盒环境”参数。

任何帮助都将不胜感激,即使它只是确认可以读取朋友自托管的对象。

【问题讨论】:

  • 目前想知道同样的事情。如果我发现了什么,我会告诉你的。

标签: facebook facebook-graph-api


【解决方案1】:

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

不过,有效的是查询您朋友的自定义操作,而不是对象。例如。: /&lt;userid&gt;/myapp:actiontype.

从actions中,可以得到关联的对象; ids,然后您可以简单地查询为/&lt;objectid&gt;

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

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

【讨论】:

  • 我要补充一点,您可以使用“/me/friends?fields=myapp:actiontype”同时获取所有朋友的操作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多