首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在android应用程序中显示带有图片的Facebook页面帖子

在android应用程序中显示带有图片的Facebook页面帖子
EN

Stack Overflow用户
提问于 2016-07-04 18:31:20
回答 2查看 2.8K关注 0票数 3

我需要帮助吗?我开发了一个应用程序来查看最近20个脸书页面馈送(有图片的帖子如果存在)我使用图形(https://graph.facebook.com/229161663845327/feed?access_token=266494063684850|799f6a5b3246ceeecae7e95af945da24&limit=20),但它给我一个没有图片的文本帖子的结果如何在没有在应用程序中进行脸书登录的情况下显示和获取每个帖子的文本和图像

EN

回答 2

Stack Overflow用户

发布于 2016-07-12 15:34:06

票数 2
EN

Stack Overflow用户

发布于 2017-05-10 14:37:02

感谢@sunil sunny,我解决了这个问题,它不需要在你的应用程序中登录facebook就能正常工作,请按照以下步骤操作:

1-在facebook developer站点中,创建新项目并获取下一步要使用的access_token。转到graph api并单击“Graph API Explorer”按钮

2-使用volley或http请求或您更喜欢的方式向此链接发出请求

代码语言:javascript
复制
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"

YOUR Facebook PageID

3-从请求中以字符串形式检索的数据可以像这样转换

代码语言:javascript
复制
   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

我希望这将对您有所帮助:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38182522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档