[英]facebook sdk 3.0 getting friends scores return empty (android)
我试图使用Facebook的得分API。
所以我发布这样的分数:
public void postScore(int score) {
Bundle fbParams = new Bundle();
fbParams.putString("score", "" + score);
Request postScoreRequest = new Request(Session.getActiveSession(),
"me/scores", fbParams, HttpMethod.POST, new Request.Callback() {
@Override
public void onCompleted(Response response) {
FacebookRequestError error = response.getError();
if (error != null) {
Log.e("posting score",
"Posting Score to Facebook failed: "
+ error.getErrorMessage());
} else {
Log.i("posting score",
"Score posted successfully to Facebook");
}
}
});
Request.executeBatchAsync(postScoreRequest);
}
成功!
并即时获得用户评分,如下所示:
public static void getScore() {
Request postScoreRequest = new Request(Session.getActiveSession(),
"me/scores", null, HttpMethod.GET, new Request.Callback() {
@Override
public void onCompleted(Response response) {
FacebookRequestError error = response.getError();
if (error != null) {
Log.d("getting score",
"Getting Score from Facebook failed: "
+ error.getErrorMessage());
Scores.isMyScoreLoaded = false;
} else {
Log.d("getting score",
"Got Score successfully from Facebook");
Log.d("score object", response.getGraphObject()
.getInnerJSONObject().toString());
Scores.isMyScoreLoaded = true;
}
}
});
Request.executeBatchAsync(postScoreRequest);
}
成功!!!
但是当我试图获得所有朋友的分数时,像这样:
public static void getFriendsScores() {
Request postScoreRequest = new Request(Session.getActiveSession(), "/"
+ R.string.app_id + "/scores", null, HttpMethod.GET,
new Request.Callback() {
@Override
public void onCompleted(Response response) {
FacebookRequestError error = response.getError();
if (error != null) {
Log.d("getting all scores",
"Getting Scores from Facebook failed: "
+ error.getErrorMessage());
Scores.isFriendsScoresLoaded = false;
} else {
Log.d("getting all scores",
"Got Scores successfully from Facebook");
Log.d("score object", response.getGraphObject()
.getInnerJSONObject().toString());
Scores.isFriendsScoresLoaded = true;
}
}
});
Request.executeBatchAsync(postScoreRequest);
}
* 它工作! (无错误)但返回空杰森:( *
感谢您的帮助!!!!
亚基尔
你好亲近
您不需要第一个正斜杠,并且您传递的是resourceID而不是实际的App IP。 因此更新后的代码将如下所示。
public static void getFriendsScores() {
Request postScoreRequest = new Request(Session.getActiveSession(),
getResources().getString(R.string.app_id) +"/scores", null, HttpMethod.GET,
new Request.Callback() {
@Override
public void onCompleted(Response response) {
FacebookRequestError error = response.getError();
if (error != null) {
Log.d("getting all scores",
"Getting Scores from Facebook failed: "
+ error.getErrorMessage());
Scores.isFriendsScoresLoaded = false;
} else {
Log.d("getting all scores",
"Got Scores successfully from Facebook");
Log.d("score object", response.getGraphObject()
.getInnerJSONObject().toString());
Scores.isFriendsScoresLoaded = true;
}
}
});
Request.executeBatchAsync(postScoreRequest);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.