Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法在Unity的Facebook SDK中发布用户分数_C#_Android_Facebook Graph Api_Unity3d_Facebook Unity Sdk - Fatal编程技术网

C# 无法在Unity的Facebook SDK中发布用户分数

C# 无法在Unity的Facebook SDK中发布用户分数,c#,android,facebook-graph-api,unity3d,facebook-unity-sdk,C#,Android,Facebook Graph Api,Unity3d,Facebook Unity Sdk,我在一个android版Unity3D游戏中工作,该游戏使用Facebook Unity SDK存储、检索分数并制作排行榜,但我发现了问题,我无法找出原因 我正在使用: Unity Pro 5.3.3f1 Facebook Unity SDK 7.4.0 图API 2.5 我发布了我认为正在制造麻烦的代码。它有时可以工作,但主要是由于没有所需的权限或声明“未找到”错误而失败 游戏在Facebook开发者网页中正确配置 -- -- 关于代码的注释:FacebookScore类型是一个封装lon

我在一个android版Unity3D游戏中工作,该游戏使用Facebook Unity SDK存储、检索分数并制作排行榜,但我发现了问题,我无法找出原因

我正在使用:

  • Unity Pro 5.3.3f1
  • Facebook Unity SDK 7.4.0
  • 图API 2.5
我发布了我认为正在制造麻烦的代码。它有时可以工作,但主要是由于没有所需的权限或声明“未找到”错误而失败

游戏在Facebook开发者网页中正确配置

--

--

关于代码的注释:FacebookScore类型是一个封装long的结构,允许我按位操作它以存储多个数字。这些方法属于一个类似于单例的类,它在游戏的每一点上都是可访问的,并且通过场景更改来保存


任何想法对我都很有价值,提前谢谢。

问题解决了。我发送了一个64位整数,但Facebook Graph API只能接受一个32位无符号整数。

问题解决了。我发送了一个64位整数,但Facebook Graph API只能接受一个32位无符号整数。

简单地说,许多人使用prime31插件来完成FB的工作。问题解决了。我发送了一个64位整数,但Facebook Graph API只能接受一个32位无符号整数。你应该把它作为一个答案,它将帮助人们。简单地说,许多人使用prime31插件来完成FB的工作。问题解决了。我发送了一个64位整数,但Facebook Graph API只能接受一个32位无符号整数。你应该把它作为一个答案,它将帮助人们。
public void RequestSetScore(FacebookScore facebookScore)
{
    if (FacebookManager.Instance.accessToken == null)
    {
        FacebookManager.Instance.OnRequestSetScoreError("Application has not logged in to Facebook yet.");
        return;
    }

    if (this.PermissionIsGranted("publish_actions"))
    {
        string requestUri;
        requestUri = string.Format("{0}/scores?score={1}",
            FacebookManager.Instance.accessToken.UserId,
            facebookScore.ScoreValue.ToString());

        FB.API(requestUri, HttpMethod.POST,
            scoreSetRequestresult =>
            {
                // Esto se ejecuta cuando la respuesta se ha recibido, no inmediatamente
                if (scoreSetRequestresult.Error != null)
                {
                    // This is an event of my class
                    FacebookManager.Instance.OnRequestSetScoreError(scoreSetRequestresult.Error);
                }
                else
                {
                    // This is an event of my class
                    FacebookManager.Instance.OnRequestSetScoreSuccess();
                }
            }
        );
    }
    else
    {
        // Pedir permisos para publicar puntuaciones
        FB.LogInWithPublishPermissions(FacebookManager.Instance.publishPermissions,
            permissionRequestresult =>
            {
                // Esto se ejecuta cuando la respuesta se ha recibido, no inmediatamente
                if (permissionRequestresult.Error != null)
                {
                    string requestUri;
                    requestUri = string.Format("{0}/scores?score={1}",
                        FacebookManager.Instance.accessToken.UserId,
                        facebookScore.ScoreValue.ToString());

                    FB.API(requestUri, HttpMethod.POST,
                        scoreSetRequestresult =>
                        {
                            // Esto se ejecuta cuando la respuesta se ha recibido, no inmediatamente
                            if (scoreSetRequestresult.Error != null)
                            {
                                // This is an event of my class
                                FacebookManager.Instance.OnRequestSetScoreError(scoreSetRequestresult.Error);
                            }
                            else
                            {
                                // This is an event of my class
                                FacebookManager.Instance.OnRequestSetScoreSuccess();
                            }
                        }
                    );
                }
                else
                {
                    // This is an event of my class
                    FacebookManager.Instance.OnRequestSetScoreError(permissionRequestresult.Error);
                }
            }
        );
    }
}

// Métodos auxiliares
private bool PermissionIsGranted(string permission)
{
    AccessToken token = Facebook.Unity.AccessToken.CurrentAccessToken;
    foreach (string grantedPermission in token.Permissions)
    {
        if (grantedPermission == permission)
            return true;
    }

    return false;
}