簡単なことをしてFacebookと通信しようとしています。現時点では、ユーザーをログインして、自分のウォールに投稿できます。しかし、何らかの理由で、名前などの公開情報にアクセスできないようです。私は一貫してこのエラーを受け取ります:
{"error":{"message":"構文エラー \"文字 4 の \"?\".\" の代わりに文字列の末尾が必要: name?access_token=MYACCESSTOKEN","type":"OAuthException","code ":2500}}
呼び出しは次のとおりです。
SampleRequestListener srl = new SampleRequestListener();
AsyncFacebookRunner afr = new AsyncFacebookRunner(facebook);
afr.request("http://graph.facebook.com/me?fields=name", (RequestListener)srl);
その呼び出しは、検証済みのセッション内 (.Authorize の DialogListener の onComplete 部分) で行われます。私の access_token と上記とまったく同じ文字列を使用して、http://developers.facebook.com/tools/explorer/でリクエストを正常に機能させることができます
RequestListener.onComplete で応答を解析しているときにエラーが発生します
JSONObject json = Util.parseJson(response);
final String name = json.getString("name");
System.out.println("Hi, my name is " + name);
お時間をいただきありがとうございます。すべての入力を歓迎します。
アップデート *
2 つのことが起こっています。Facebook API では、Util.openUrl に「?」が追加されていました。フィールド名とaccess_tokenの間(以下の回答が指摘しているように)。これは奇妙に思えます。APIの古いバージョンか何かを引っ張ったのだろうか。あなたはそれが正しく設定されると思うでしょう。
また、メソッドを間違って呼び出しました: これ:
afr.request("http://graph.facebook.com/me?fields=name", (RequestListener)srl);
次のようにする必要があります。
afr.request("me?fields=name", (RequestListener)srl);