我创建了一个也发布对象的动作。 我启用了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个新闻项目竞争。如果应用程序使用得足够可能会成为一种方式,但似乎使用会下降,然后你就无法轻易获得较旧的帖子。
答案 0 :(得分:1)
在Permissions的文档中,除了您已经拥有的“publish_actions”之外,您还可以清楚地看到两个额外的权限:
user_actions:APP_NAMESPACE
和
friends_actions:APP_NAMESPACE
并说明:
允许您检索其他应用程序发布的操作 由app命名空间指定。例如,要求能力 检索具有命名空间的应用程序发布的操作 awesomeapp,提示用户输入users_actions:awesomeapp和/或 friends_actions:awesomeapp权限。