C# 将分数发布到Facebook应用程序

C# 将分数发布到Facebook应用程序,c#,facebook,post,facebook-c#-sdk,C#,Facebook,Post,Facebook C# Sdk,我一直在寻找关于在Facebook应用程序上发布分数的答案,但我仍然无法让它发挥作用。我使用的代码在这里- private const string FACEBOOK_POST_SCORE_URL = "https://graph.facebook.com/me/scores?access_token={0}"; public void PostScoreAsync(Action<FacebookResponse> response, FacebookScore score)

我一直在寻找关于在Facebook应用程序上发布分数的答案,但我仍然无法让它发挥作用。我使用的代码在这里-

private const string FACEBOOK_POST_SCORE_URL = "https://graph.facebook.com/me/scores?access_token={0}";

public void PostScoreAsync(Action<FacebookResponse> response, FacebookScore score)
    {

        try
        {
            // Append the user's access token to the URL
            Uri fullUri = new Uri(string.Format(FACEBOOK_POST_SCORE_URL, AccessToken));

            string json = JsonConvert.SerializeObject(score);

            var request = (HttpWebRequest)WebRequest.Create(fullUri);
            request.Method = "POST";
            request.ContentType = "application/json; charset=utf-8";

            using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
            {
                writer.Write(json);
            }

            request.BeginGetResponse(WebRequestCallback, new FacebookResult
            {
                Request = request,
                Response = response
            });

        }
        catch (ThreadAbortException)
        {
            throw;
        }
        catch (WebException ex)
        {
            if (response != null)
                response(FacebookResponse.NetworkError);
        }
        catch (Exception ex)
        { 
            if (response != null)
                response(FacebookResponse.OtherError);
        }

    }
private const string FACEBOOK\u POST\u SCORE\u URL=”https://graph.facebook.com/me/scores?access_token={0}";
public void PostScoreAsync(操作响应、FacebookScore分数)
{
尝试
{
//将用户的访问令牌附加到URL
urifulluri=新的Uri(string.Format(FACEBOOK_POST_SCORE_URL,AccessToken));
字符串json=JsonConvert.SerializeObject(分数);
var request=(HttpWebRequest)WebRequest.Create(fullUri);
request.Method=“POST”;
request.ContentType=“application/json;charset=utf-8”;
使用(StreamWriter writer=newstreamwriter(request.GetRequestStream()))
{
Write.Write(json);
}
BeginGetResponse(WebRequestCallback,new FacebookResult
{
请求=请求,
响应=响应
});
}
捕获(线程异常)
{
投掷;
}
捕获(WebException ex)
{
if(响应!=null)
响应(FacebookResponse.NetworkError);
}
捕获(例外情况除外)
{ 
if(响应!=null)
响应(FacebookResponse.OtherError);
}
}
我们使用的是网络视图,而不是iOS/Android Facebook SDK,因为我们正在Mono中构建一个跨平台的应用程序

显然,我有访问令牌&该应用程序似乎拥有完成我想做的事情的完全权限,这是我在登录后允许的。任何想法都很感激

我最终(从一位同事那里)发现Facebook graph api不会采用json编码的参数,所以我们对它进行了分类-

string parameters = "score=" + score.Score;

var request = (HttpWebRequest)WebRequest.Create(fullUri);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";

using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
{
    writer.Write(parameters);
}

现在它工作正常-希望这能帮助其他人避免同样的问题。

您确定您拥有的
access\u token
是用于应用程序而不是用户的吗?绝对正确的访问token,不过还是谢谢