C# 无法在Unity的Facebook SDK中发布用户分数
我在一个android版Unity3D游戏中工作,该游戏使用Facebook Unity 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
- Unity Pro 5.3.3f1
- Facebook Unity SDK 7.4.0
- 图API 2.5
任何想法对我都很有价值,提前谢谢。问题解决了。我发送了一个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;
}