使用LibGdx创建Facebook游戏请求

时间:2016-06-29 23:30:09

标签: android facebook facebook-graph-api libgdx

我正在使用Tom Grill的gdx-facebook扩展程序将Facebook整合到我的游戏中,效果很好。

但是我找不到创建游戏请求的方法。我可以获得一个邀请朋友的列表,但这只有在您想要创建自定义列表时才有用,并且只返回您朋友的一小部分。

我希望所有朋友,并能够向他们发送游戏请求,是否可能?如果是,我如何获得所有朋友的列表以及如何向他们发送游戏请求?

来源:

FB-dev:https://developers.facebook.com/docs/games/services/gamerequests

扩展名:https://github.com/TomGrill/gdx-facebook

使用扩展程序的示例:https://github.com/TomGrill/gdx-facebook-app

1 个答案:

答案 0 :(得分:2)

获取所有可邀请的朋友是这样的:

仅当您的Facebook应用是游戏时才有效。

GDXFacebookGraphRequest request = new GDXFacebookGraphRequest().setNode("me/invitable_friends").useCurrentAccessToken();

这将为您提供25个与您的应用无关的朋友的列表。要获得孔列表,您必须使用“分页”。

JsonResult包含一个朋友列表,最后是分页信息。看起来像这样:

{
"data": [
    {
        "id": "AVlH4xqLBxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "name": "Friends Name",
        "picture": {
            "data": {
                "is_silhouette": false,
                "url": "https://scontent.xx.fbcdn.net/v/t1.0-1/pxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
            }
        }
    },
    .................
],
"paging": {
    "cursors": {
        "before": "QVZAuZATBxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "after": "QVZAtbmxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    },
    "previous": "https://graph.facebook.com/v2.6/12xxxxxxxxxxxxxx/invitable_friends?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxx&limit=25&after=QVZAuZxxxxxxxxxxxxxxx"
}
}

要获得下一个25位朋友,您必须发送另一个请求:

GDXFacebookGraphRequest request = new GDXFacebookGraphRequest().setNode("me/invitable_friends").useCurrentAccessToken();
request.putField("after", "QVZAtbmxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");

有一个名为“限制”的未记录字段,似乎可以让您通过一个请求获得更多朋友。请注意,Facebook可能会在未经通知的情况下更改/删除。

request.putField("limit", "1000");

<强> GameRequest:

https://github.com/TomGrill/gdx-facebook/wiki/7.-Game-Requests

GDXFacebookGameRequest request = new GDXFacebookGameRequest();
request.setMessage("Come on play this game with me!");
Array<String> recipientIds = new Array<String>();
recipientIds.add("AVlH4xqLBxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
request.setRecipients(recipientIds);
gdxFacebook.gameRequest(request);