使用Facebook SDK向特定用户发送应用请求

时间:2014-10-03 12:27:07

标签: android facebook facebook-graph-api facebook-app-requests

我正在开发一款“与你的朋友玩游戏”功能的游戏(它不使用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();

这似乎是我在许多游戏中看到的非常标准的设置,所以我知道这是可能的。我有什么想法我做错了吗?谢谢!

1 个答案:

答案 0 :(得分:1)

这个AFAIK在图API的v2.x中是不可能的,并且它不是taggable_friends端点的意图(特别是假设有一个invitable_friends端点)。我认为你有两个选择:

  1. 还可以实现Canvas应用,以便您可以使用invitable_friends

  2. 显示所有已经在使用该应用的朋友(通过/ friends端点),然后有一个允许用户邀请更多朋友的按钮,但不指定要邀请的朋友。弹出的对话框将有一个朋友选择器,允许用户选择要邀请的朋友。