【问题标题】:Facebook SDK for Unity How to use FB.AppRequest in Invitable_friends id(token)?Facebook SDK for Unity 如何在 Invitable_friends id(token) 中使用 FB.AppRequest?
【发布时间】:2014-07-18 06:07:03
【问题描述】:

我正在使用 Facebook SDK for Unity 5.1。但我在开发 Android 应用时遇到了问题。

请参阅以下内容:

void GetInviteFriends() {
    FB.API("/me/invitable_friends", Facebook.HttpMethod.GET, FriendCallback); 
}

Facebook Graph API 2.0 有 invitable_friends 查询。它已返回给朋友令牌。 (不是身份证)

我已经阅读了许多手册、许多示例、问答,但找不到如何使用“FB.Apprequest : invitable_friends query, Facebook SDK 5.1 for Unity3D”。

其他示例(javascript):使用 FB.ui .. 朋友令牌插入 'to' 参数。没关系。

适用于 Unity 的 Facebook SDK 具有 FB.AppRequest。它为用户提供了一个有用的应用请求用户。

但是,FB.AppRequestto 参数不读取好友令牌...

或者我不使用朋友令牌。我的应用是公开的,属于游戏类别。

插入好友令牌的to参数结果。

400 Bad Request
UnityEngine.Debug:LogError(Object)
FbDebug:Error(String)
Facebook.FallbackData:JSFallback(String)
Facebook.AsyncRequestDialogPost:CallbackWithErrorHandling(FBResult)
Facebook.<Start>c__Iterator0:MoveNext()

我不知道是什么问题。

这是外部呼叫消息

External Call: fbUi("{\"message\":\"I'm Invite to you.\",\"to\":\"AVnBTaC8ez5yUfksw2oOTepdNOaVkQqTKH2bQ1CW9R4U88MEGDUvtF2C9mclasIBT9am7ADKbIdzq3SXMpWx3dTDcR7oPwV18kzPcKZlSQaoIA\",\"title\":\"Friends to Invite\",\"app_id\":\"1449208528671088\",\"locale\":\"en_US\",\"method\":\"apprequests\"}", "1");
UnityEngine.Application:ExternalCall(String, Object[])
Facebook.CanvasFacebook:JSFallbackUI(String, Dictionary`2, FacebookDelegate)
Facebook.FallbackData:JSFallback(String)
Facebook.AsyncRequestDialogPost:CallbackWithErrorHandling(FBResult)
Facebook.<Start>c__Iterator0:MoveNext()

这是我的FB.AppRequest 表单。

 public static void AppRequest(
        string message,
        OGActionType actionType,
        string objectId,
        string[] to,
        string data = "",
        string title = "",
        FacebookDelegate callback = null)
{
    FacebookImpl.AppRequest(message, actionType, objectId, to, null, null, null, data, title, callback);
}

我用过这个:

FB.AppRequest(
    DirectRequestMessage,
    null,
    "",
    DirectRequestTo,
    "",
    DirectRequestTitle,
    Callback
);

【问题讨论】:

    标签: facebook facebook-graph-api unity3d facebook-unity-sdk


    【解决方案1】:

    Facebook Unity SDK 仍在使用 v1.0 的图形 API。虽然文档似乎表明您可以调用 2.0 方法,但正如您所见,它只是返回 400 错误。

    无论如何,即使这确实有效,您仍然没有来自 Facebook 的正确信息来使用需要用户 ID 的 FB.AppRequest 方法,因为 invitable_friends 不返回用户 ID。

    您可以继续使用“me/friends”,而不是使用“me/invitable_friends”。这个 1.0 的方法会返回所有好友的名字和 ID。

    Facebook 表示他们将在 2015 年 4 月 30 日终止 1.0 API,但他们尚未提供替代方案。

    示例代码:

    public void GetAllFriends()
    {
        FB.API("/me/friends", Facebook.HttpMethod.GET, GetAllFriendsDone);
    }
    
    private void GetAllFriendsDone(FBResult result)
    {
        if (string.IsNullOrEmpty(result.Error) == false)
        {
            UnityEngine.Debug.Log(result.Error);
        }
        else
        {
            UnityEngine.Debug.Log(result.Text);
            //DO something with friends
        }
    }
    

    【讨论】:

      【解决方案2】:

      通过 Friendsmash-unity 示例找到如何正确调用 api 的方法。

      FB.API("/v2.0/me?invitable_friends", Facebook.HttpMethod.GET, InviteCallback);
      

      真的建议更新你的代码并以这种方式实现它,因为 API 1.0 很快就会被拉出来。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-18
        • 1970-01-01
        • 1970-01-01
        • 2023-03-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多