我试图从Graph中获取一个用户和他的朋友的分数,但我遇到了错误。"只有创建视图层次结构的原始线程才能访问其视图。"执行时。
JSONArray responseJSONArray = new JSONArray(response);
我有所有需要的许可。我成功地使用将分数发布到图表中
fbParams.putString("score", "" + 555);
Request postScoreRequest = new Request(Session.getActiveSession(),
"me/scores",
fbParams,
HttpMethod.POST,
new Request.Callback() {
...
...
当我试图得分时。甚至从使用此模式的浏览器
https://graph.facebook.com/{userid}/scores?access_token={app_access_token}
我有
{"data":[{"user":{"name":"MYUSERNAME","id":"MIID"},"score":555,"application":{"name":"Tomato Smasher","namespace":"tomatosmasher","id":"354552234651550"}}]}
我从以下位置获取访问代码:https://developers.facebook.com/tools/explorer
但在安卓应用程序中使用:
Session.getActiveSession().getAccessToken();
// Execute the HTTP Get to our server for the scores of the user's friends
HttpClient client = new DefaultHttpClient();
String getURL = "https://graph.facebook.com/" + currentUserFBID + "/scores?access_token=" + currentUserAccessToken;
HttpGet get = new HttpGet(getURL);
HttpResponse responseGet = client.execute(get);
System.out.println("ALL GOOD2");
// Parse the response
HttpEntity responseEntity = responseGet.getEntity();
String response = EntityUtils.toString(responseEntity);
System.out.println("ALL GOOD3");
if (!response.equals(null)) {
System.out.println("ALL GOOD4");
System.out.println(response);
JSONArray responseJSONArray = new JSONArray(response); // <----------------got EXEPTION HERE
System.out.println("ALL GOOD4.5");
您可以使用此代码使用facebook3.0访问好友分数
字符串fqlQuery="SELECT value FROM score WHERE user_id="+"Enter_user_id_Here"+"AND app_id="+"在此处输入应用程序id";
Bundle params = new Bundle();
params.putString("q", fqlQuery);
Session session = Session.getActiveSession();
Request request = new Request(session,
"/fql",
params,
HttpMethod.GET,
new Request.Callback(){
public void onCompleted(Response response) {
Log.i("Result: ",response.toString());
try{
GraphObject graphObject = response.getGraphObject();
JSONObject jsonObject = graphObject.getInnerJSONObject();
JSONArray array = jsonObject.getJSONArray("data");
JSONObject data = array.getJSONObject(0);
Score = data.getString("value");
}catch(JSONException e){
e.printStackTrace();
}
}
});
Request.executeBatchAsync(request);