我需要帮助吗?我开发了一个应用程序来查看最近20个脸书页面馈送(有图片的帖子如果存在)我使用图形(https://graph.facebook.com/229161663845327/feed?access_token=266494063684850|799f6a5b3246ceeecae7e95af945da24&limit=20),但它给我一个没有图片的文本帖子的结果如何在没有在应用程序中进行脸书登录的情况下显示和获取每个帖子的文本和图像
发布于 2016-07-12 15:34:06
发布于 2017-05-10 14:37:02
感谢@sunil sunny,我解决了这个问题,它不需要在你的应用程序中登录facebook就能正常工作,请按照以下步骤操作:
1-在facebook developer站点中,创建新项目并获取下一步要使用的access_token。转到graph api并单击“Graph API Explorer”按钮

2-使用volley或http请求或您更喜欢的方式向此链接发出请求
String FACEBOOKURL="https://graph.facebook.com/YOUR Facebook PageID/feed?"
+"fields=id,story,created_time,message,full_picture&access_token=/* put your access token that you take from step 1*/&limit=15"3-从请求中以字符串形式检索的数据可以像这样转换
JSONObject dataObj = null;
Log.i("// url", URL.FACEBOOKURL);
try {
String story = "";
String message = "";
String created_time = "";
String image = "";
String id = "";
dataObj = new JSONObject(response);
JSONArray jdata = dataObj.getJSONArray("data");
JSONObject jpaging = dataObj.getJSONObject("paging");
final String previous = jpaging.getString("previous");
final String next = jpaging.getString("next");
for (int i = 0; i < jdata.length(); i++) {
JSONObject jsonObject = jdata.getJSONObject(i);
try {
message = jsonObject.getString("message");
story = "";
} catch (JSONException e) {
story = jsonObject.getString("story");
Log.i("//story", story);
}
created_time = jsonObject.getString("created_time");
try {
image = jsonObject.getString("full_picture");
} catch (JSONException e) {
image = "";
}
id = jsonObject.getString("id");
String[] parts = id.split("_");
String pageId = parts[0];
final String postId = parts[1];
Log.i("---//message", postId);
Log.i("---//image", image);
fbDataList.add(new FbData(postId, message, story, created_time, image));我之所以使用try catch,是因为在输出数据的每一行中,它都在发生变化,比如当你的帖子只返回图片和“full_picture”、"message“其中之一时,你可以在浏览器中运行链接,查看输出的json,并根据需要使用它
4-最后,您可以将输出列表放入recyclerView
我希望这将对您有所帮助:)
https://stackoverflow.com/questions/38182522
复制相似问题