我正在开发一款“与你的朋友玩游戏”功能的游戏(它不使用Facebook Canvas)。设置非常标准。我想显示所有用户Facebook好友的列表,如果他们也是我的应用的用户,则会显示“播放”按钮,否则会显示“邀请”按钮。
要获取使用该应用的Facebook好友列表,请拨打
Request.newMyFriendsRequest
然后要获取所有朋友的列表,我再拨打/me/taggable_friends
。
通过这些信息,我可以创建这样的列表。问题是如果我想向用户发送应用请求,我需要他们的用户ID,但/me/taggable_friends
返回的id不是该用户的实际Facebook ID,而是一个唯一的id关联使用我的应用程序(如文档中所述),如果我想使用它发送应用程序请求,它将无效。
邀请朋友,我正在使用以下代码:
Bundle params = new Bundle();
params.putString("title", "Invite Friend");
params.putString("message", "has invite has you to try out the game");
params.putString("to", id); // how do I get this id?
WebDialog requestsDialog = ( new WebDialog.RequestsDialogBuilder(this,
Session.getActiveSession(), params)).setOnCompleteListener(new WebDialog.OnCompleteListener()
{
@Override
public void onComplete(Bundle values, FacebookException error) {
}
}).build();
requestsDialog.show();
这似乎是我在许多游戏中看到的非常标准的设置,所以我知道这是可能的。我有什么想法我做错了吗?谢谢!
答案 0 :(得分:1)
这个AFAIK在图API的v2.x中是不可能的,并且它不是taggable_friends端点的意图(特别是假设有一个invitable_friends端点)。我认为你有两个选择:
还可以实现Canvas应用,以便您可以使用invitable_friends
显示所有已经在使用该应用的朋友(通过/ friends端点),然后有一个允许用户邀请更多朋友的按钮,但不指定要邀请的朋友。弹出的对话框将有一个朋友选择器,允许用户选择要邀请的朋友。