0

私は、スコアを Facebook アプリに投稿することに関して、SO で回答を探していましたが、まだ機能させることができません。私が使用しているコードはここにあります-

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);
        }

    }

Mono でクロスプラットフォーム アプリを構築しているため、iOS / Android Facebook SDK ではなく webView を使用しています。

明らかに、私はアクセス トークンを持っており、アプリは、ログイン後に許可した、やりたいことを実行するための完全なアクセス許可を持っているようです。どんな考えでも大歓迎です!

4

1 に答える 1

0

私は最終的に (同僚から) Facebook グラフ 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);
}

今では問題なく動作します - うまくいけば、これは他の誰かが同じ問題を抱えていないのに役立つでしょう.

于 2012-09-06T10:54:00.383 に答える