我想跟踪从“玩家_1”发送到其他玩家的邀请以对其进行计数,从而为“玩家_1”提供一些奖励。就像在PVZ2中一样。

好的,Facebook有Unity3d的SDK。这是调用应用程序请求对话框的API,允许邀请播放器:

public static void AppRequest(
        string message,
        string[] to = null,
        string filters = "",
        string[] excludeIds = null,
        int? maxRecipients = null,
        string data = "",
        string title = "",
        FacebookDelegate callback = null)


Facebook的文档说了有关redirect_url的一些内容,可用于跟踪接受缩进的用户:
https://developers.facebook.com/docs/reference/dialogs/requests/

但是Unity插件没有这个参数。

另外医生说,遵循:


  请求仅适用于Facebook.com或iOS上的游戏,
  Android应用。接受游戏的请求将指导此人
  到发送请求的应用的“画布页面” URL。对于本地人
  行动应用程式,接受要求会将使用者导向该应用程式
  在其设备上(如果已安装)或安装在适当的位置(Apple App
  商店或Google Play)以其他方式下载该应用。


游戏只能在移动设备上运行。因此,我们不需要制作Facebook Canvas应用程序。我是否应该在我们的网站上实施此Canvas URL脚本?

在哪里插入代码(服务器端脚本)来跟踪Facebook应用程序请求的正确位置?

更新:
感谢Bhavesh Vadalia的回答:https://stackoverflow.com/a/21597185/425707
我决定不处理Canvas App中的好友请求。
这是Facebook SDK 5.0.3的解决方案:

// Quesry string: "/fql?q=SELECT uid, name, is_app_user, pic_square FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) AND is_app_user = 1";
string q = "/fql?q=SELECT+uid,+name,+is_app_user,+pic_square+FROM+user+WHERE+uid+IN+(SELECT+uid2+FROM+friend+WHERE+uid1+=+me())+AND+is_app_user+=+1";
FB.API(q, Facebook.HttpMethod.GET, friendsResult =>
{
    if (friendsResult.Error != null)
    {
        FbDebug.Error(friendsResult.Error);
    }
    else
    {
        FbDebug.Log(friendsResult.Text);
    }
});

最佳答案

这是在我的应用程序中使用facebook graph api工具实现跟踪代码的工具。希望它也对您有所帮助。

我正在使用Facebook 3.6 SDK

private void requestMyAppFacebookFriends(Session session) {
        Request friendsRequest = createRequest(session);
        friendsRequest.setCallback(new Request.Callback() {

            @Override
            public void onCompleted(Response response) {
                List<GraphUser> friends = getResults(response);

                Log.e("RESULT : ", "@"+friends.size());

                for(int i =0;i<friends.size(); i++){

                    GraphUser user = friends.get(i);
                    boolean installed = false;
                    if(user.getProperty("installed") != null){
                        installed = (Boolean) user.getProperty("installed");
                    }
                    if(installed){
                        Log.e("USER NAME", "@"+friends.get(i).getId());
                    }
                }
                // TODO: your code here
            }
        });
        friendsRequest.executeAsync();
    }
 private Request createRequest(Session session) {
        Request request = Request.newGraphPathRequest(session, "me/friends", null);

        Set<String> fields = new HashSet<String>();
        String[] requiredFields = new String[] { "id", "name", "picture","installed" };
        fields.addAll(Arrays.asList(requiredFields));

        Bundle parameters = request.getParameters();
        parameters.putString("fields", TextUtils.join(",", fields));
        request.setParameters(parameters);

        return request;
    }

关于android - 如何跟踪从Unity应用发送的Facebook appRequest?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21476795/

10-14 19:59
查看更多