如何获取尚未安装该应用程序的Facebook好友列表?

Kir*_*odi 12 facebook facebook-graph-api ios

我正在开发一个社交网络应用程序.我在我的iOS应用程序中集成了Facebook SDK 3.14.现在,我想获取所有Facebook好友的列表,这样我就可以邀请那些没有使用该应用程序的朋友,并向已安装该应用程序的朋友发送好友请求.

我可以获得已经使用我的应用程序的朋友列表"/me/friends".

[FBRequestConnection startWithGraphPath:@"/me/friends"
                             parameters:nil
                             HTTPMethod:@"GET"
                      completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
                          NSLog(@"All == %@", result);
                      }];
Run Code Online (Sandbox Code Playgroud)

它给朋友的Facebook ID(例如id = 654330727444458)作为回应,以便我可以向他们发送朋友请求.

要获得所有未下载应用程序的Facebook好友的列表,如果我想邀请那些,我需要让所有朋友使用"me/taggable_friends"(如果我错了请纠正我).

[FBRequestConnection startWithGraphPath:@"/me/taggable_friends"
                             parameters:nil
                             HTTPMethod:@"GET"
                      completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
                          NSlog("%@", result);
                      }];
Run Code Online (Sandbox Code Playgroud)

taggable_friends回复中,我得到朋友的身份为id = "AaLYBzZzHdzCmlytqyMAjO0OLDZIOs74Urn93ikeRmmTB3vX_Xl81OYUt4XnoWG0BDLuX67umVkheVdDjzyvm0fcqMqu84GgM9JnNHc-1B63eg"这是朋友的令牌ID并且它不是唯一的.我不能使用它,必须使用朋友的Facebook ID邀请他们.不幸的是,我无法在可标记的朋友回复.

Mar*_*tin 6

这只能在Facebook API v1上实现,该API将于明年4月左右停止工作.即使现在只有现有的Facebook应用程序允许您使用V1,所以如果您没有足够老的应用程序,则无法执行此操作.在V2中,您只能获得已登录同一应用程序的朋友,但用户ID对于应用程序是唯一的,以防止这种情况发生.我猜Facebook的原因是,通过这样做可以阻止人们通过应用程序向朋友发送垃圾邮件:

正如@joelrb所说,你可以为游戏创建一个画布应用程序并使用invitable_friends但FB会审核你的"游戏",所以你不能真正作弊.

有关详细信息,请参阅https://developers.facebook.com/docs/apps/changelog/.

TLDR; 你可以做到贴墙.强硬.抱歉.