为什么不https://graph.facebook.com/me/friends/myApp:myAction工作?

时间:2012-04-13 20:38:13

标签: ios facebook facebook-graph-api batch-file facebook-fql

我创建了一个也发布对象的动作。 我启用了publish_actions权限。 我可以通过以下方式获取我的行动清单: https://graph.facebook.com/me/myApp:myAction

但我无法得到: https://graph.facebook.com/me/friends/myApp:myAction

或者我是否需要直接获取对象列表并以某种方式过滤掉自己? 我实际上无法弄清楚如何获取对象列表而不通过相关的操作调用它。这是怎么回事?

替代方法: 首先,我fql.query“选择uid,name,is_app_user来自用户所在的uid(从朋友那里选择uid2,其中uid1 = me())和is_app_user = 1”并找回安装了应用程序的朋友......

其次, 我收回该查询并使用它来批处理以下内容:

for (NSDictionary *d in friendsWithApp) {
NSString *jsonRequest = [NSString stringWithFormat:@"{ \"method\": \"GET\", \"relative_url\": \"%@/myApp:myAction/myObject\" }", [d objectForKey:@"uid"]];
    jsonRequestsArray = [jsonRequestsArray stringByAppendingString:jsonRequest];

    setCount++;
    if (setCount!=[presets count]) {
        jsonRequestsArray = [jsonRequestsArray stringByAppendingString:@", "];
    }
}
jsonRequestsArray = [jsonRequestsArray stringByAppendingString:@" ]"];
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObject:jsonRequestsArray forKey:@"batch"];
[facebook requestWithGraphPath:@"me" andParams:params andHttpMethod:@"POST" andDelegate:self];

唉。我还有一个可用的列表,包含这个fql.query:

“SELECT post_id,actor_id,FROM FROM FROM WHERE filter_key in(SELECT filter_key FROM stream_filter WHERE uid = me()AND type ='newsfeed')AND app_id = MY_APP_ID”

但它不会返回很多项目,因为它与最近50个新闻项目竞争。如果应用程序使用得足够可能会成为一种方式,但似乎使用会下降,然后你就无法轻易获得较旧的帖子。

1 个答案:

答案 0 :(得分:1)

Permissions的文档中,除了您已经拥有的“publish_actions”之外,您还可以清楚地看到两个额外的权限:

  

user_actions:APP_NAMESPACE

  

friends_actions:APP_NAMESPACE

并说明:

  

允许您检索其他应用程序发布的操作   由app命名空间指定。例如,要求能力   检索具有命名空间的应用程序发布的操作   awesomeapp,提示用户输入users_actions:awesomeapp和/或   friends_actions:awesomeapp权限。