我想在Facebook上发布一些消息并获得帖子的id
。
以下是我的代码。
post.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Bundle params = new Bundle();
params.putString("message", "This is a test message");
/* make the API call */
new GraphRequest(
AccessToken.getCurrentAccessToken(),
"/me/feed",
params,
HttpMethod.POST,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
/* handle the result */
}
}
).executeAsync();
}
});
我得到了这样的回复:
{
Response: { responseCode: 200 },
graphObject: {"id":"173048733066533_234919673546105"},
error: null
}
我需要来自graphObject
回复的“id”。
答案 0 :(得分:0)
你可以试试这段代码,
try {
JSONObject jsonObject=new JSONObject(response.getRawResponse());
JSONArray results = jsonObject.getJSONArray("graphObject");
JSONObject first = results.getJSONObject(0);
JSONObject shipper = first.getJSONObject("id");
String id = shipper.getString("id");
Log.d("id",id);
}catch (JSONException e){
}
虽然您可以测试,但未经过测试。
答案 1 :(得分:0)
查看官方Facebook文档here
如果您执行异步(Request.executeAsync())请求,则将使用带有 onCompleted(响应响应)方法的Request.Callback。如果您连续执行请求(确保您不在主线程上),则响应将是 Request.executeAndWait()方法返回的值。
从Response对象中,您可以调用 response.getGraphObject()。getInnerJsonObject()
示例:
JSONObject graphResponse = response.getGraphObject().getInnerJSONObject();
String postId = null;
try {
postId = graphResponse.getString("id");
} catch (JSONException e) {
Log.i("Facebook error", "JSON error " + e.getMessage());
}
我希望它有效。