C# Facebook graph API/FB UNITY SDK处理应用程序请求(发送和接收)

C# Facebook graph API/FB UNITY SDK处理应用程序请求(发送和接收),c#,facebook,facebook-graph-api,sdk,unity3d,C#,Facebook,Facebook Graph Api,Sdk,Unity3d,首先,这里是与我的特定帮助请求相关的原始问题线程的链接: 如果不阅读以上内容,这将毫无意义。所以,请在你投票之前,看看上面的链接,阅读它。。。然后,如果可以,请发表评论。如果你不能,那么请忽略它。我真的很想得到我的问题的答案,但是回来后发现它不可见是非常令人沮丧的,因为有人想投反对票。这是我在这里的第一个问题,我已经试了5次了,只是为了让大家看5分钟以上 我最初的评论是: @Aaron,我很感谢你在上面的链接上发布回复,因为我发现它试图弄明白如何做Nick Mascarenhas也在试图弄明白

首先,这里是与我的特定帮助请求相关的原始问题线程的链接:

如果不阅读以上内容,这将毫无意义。所以,请在你投票之前,看看上面的链接,阅读它。。。然后,如果可以,请发表评论。如果你不能,那么请忽略它。我真的很想得到我的问题的答案,但是回来后发现它不可见是非常令人沮丧的,因为有人想投反对票。这是我在这里的第一个问题,我已经试了5次了,只是为了让大家看5分钟以上

我最初的评论是: @Aaron,我很感谢你在上面的链接上发布回复,因为我发现它试图弄明白如何做Nick Mascarenhas也在试图弄明白的事情。我(作为一名Unity开发人员)还希望看到一个GetRequests类型函数,它返回一个来自UserID的数组和发送给登录用户的请求代码。我对Facebook的做事方式相当陌生(尽管我有很强的编程背景),我发现这非常。。。让Facebook整合失败的尝试令人沮丧。(这一点,unity的示例项目未能在unity中编译,但我最近了解到了原因……并且没有一个完整的项目,就像其他SDK一样……再次,非常令人沮丧,因为我希望能够弄明白这一点,然后重新构建我的游戏。)至于Aaron的答案,我遵循了所有的答案,除了:

您可以通过调用FB.API从appid获取“数据”:

调用FB.AppRequest(…,data=“life”)=>request id=1234稍后,玩家使用您调用FB.API(“1234”)的请求id 1234访问您的游戏:生成的JSON字符串将有一个字段data=“life”

主要的问题是,我还没有完全了解如何在unity C-Sharp框架内向某人发送特定的通知

例如,我希望能够在我的游戏中向其他玩家发送一个名为“加速”的加电,然后拉取发送的请求(当用户登录时),并知道他们收到了多少/来自谁/等。我正在使用下面的SendPowerUp功能

下面是所使用的代码,它大部分是从FBUtil.cs文件中复制出来的,并稍作修改以使用6.0beta sdk

    public void SendPowerUp()
{
    DirectRequestTitle = "Send a Mystery Gift to a friend.";

    FriendFilters.Add ("all");
    FriendFilters.Add ("app_users");
    FriendFilters.Add ("app_non_users");

    // sends a gift request to players... 
    FB.AppRequest (
        message: DirectRequestMessage,
        actionType: OGActionType.Send, 
        objectId: "gift" + FB.UserId,
        filters: FriendFilters, 
        excludeIds: null, 
        maxRecipients: 49, 
        data: FriendSelectorData, 
        title: DirectRequestTitle, 
        callback: (Facebook.FacebookDelegate)AppRequestAsDirectRequestComplete);
}
这是以下内容的修改版本:

    public void CallAppRequestAsDirectRequest()
{
    if (DirectRequestTo == "")
    {
        throw new ArgumentException("\"To Comma Ids\" must be specificed", "to");
    }
    FB.AppRequest(
        message: DirectRequestMessage,
        to: DirectRequestTo.Split(','),
        title: DirectRequestTitle,
        callback: AppRequestAsDirectRequestComplete
    );
}
因为Unity在导入脚本时会出现此错误,如果缺少参数:

Assets/Scripts/CSharp/FB_Controller.cs(287,12):错误CS1501:method
AppRequest'takes
4'参数没有重载


如果您能解释一下如何获取我的应用程序在玩家玩我的游戏时发送给他们的请求(来自FACEBOOK),我们将不胜感激。

我有一个类似的问题,最后在这里提出了一个黑客解决方案:

我确信有一个更简单、更优雅的解决方案,但它对我来说已经足够好了。 我忘了在回答中提到,在发送AppRequest时可以包含一个“data”字符串,然后可以从JSON读回该字符串来处理请求类型(例如life)

所有信息都在本页此处:

虽然很多都不是针对统一的,这就是为什么我的答案如此粗糙的原因。我测试它的方法是在测试用户之间发送请求。您可以使用以下链接检查浏览器中的所有请求: 访问令牌]

以及用测试用户访问令牌替换用户访问令牌。这还有助于确定在处理请求后是否已删除该请求

此外,对于AppRequest函数,有多种方法可以获取不同顺序的参数。您可以通过键入(在Monodevelop/VisualStudio中)FB.AppRequest循环浏览它们(

这将显示参数,并且可以通过按箭头键循环这些参数

希望这有帮助


编辑:刚刚意识到这是两年前提出的问题。希望你已经找到了解决方案。

上次编辑时间为2014年8月31日星期日上午12:21。我将你的答案标记为感谢的答案。我不得不放弃这一点,因为我从来没有想到过答案。很抱歉,标记时间太长,我会测试一下,看看我是否能找到答案elp很快就会改进它