在Facebook应用程序中显示帖子

时间:2011-12-07 05:33:11

标签: android facebook

如何在Facebook应用程序中显示帖子。我尝试使用Facebook的示例android API。但没有什么工作得好。我需要在android模拟器中显示我在Facebook墙上发布的帖子。我需要一个示例代码来运行并显示JSON响应作为我的帖子。

请给我发一些工作链接。

2 个答案:

答案 0 :(得分:2)

将您的Facebook登录类附加给定代码

public void postOnWall() {

    try {

           String response = Config.facebook.request("me");
           Bundle parameters = new Bundle();
           parameters.putString("access_token", Config.myAccessToken);

           parameters.putString("message", "I am Now On FB");
           parameters.putString("description", "");
           response = Config.facebook.request("me/feed", parameters, 
                   "POST");

           if (response == null || response.equals("") || 
                   response.equals("false")) {

           }
    } catch(Exception e) {
        e.printStackTrace();
    }
}

答案 1 :(得分:0)

以下是android上的代码和sdk官方官方

https://github.com/facebook/facebook-android-sdk/blob/master/examples/stream/src/com/facebook/stream/StreamHandler.java

public class StreamHandler extends Handler {

    private static final String CACHE_FILE = "cache.txt";

    /**
     * Called by the dispatcher to render the stream page.
     */
    public void go() {
        dispatcher.getWebView().addJavascriptInterface(
                new StreamJsHandler(this), "app");

        // first try to load the cached data
        try {
            String cached = FileIO.read(getActivity(), CACHE_FILE);
            if (cached != null) {
                JSONObject obj = new JSONObject(cached);
                dispatcher.loadData(StreamRenderer.render(obj));
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (JSONException e) {
            e.printStackTrace();
        }

        Facebook fb = Session.restore(getActivity()).getFb();
        new AsyncFacebookRunner(fb).request("me/home", 
                new StreamRequestListener());
    }

    public class StreamRequestListener implements RequestListener {

        public void onComplete(String response, final Object state) {
            try {
                JSONObject obj = Util.parseJson(response);
                // try to cache the result
                try {
                    FileIO.write(getActivity(), response, CACHE_FILE);
                } catch (IOException e) {
                    e.printStackTrace();
                }

                // Convert the result into an HTML string and then load it
                // into the WebView in the UI thread.
                final String html = StreamRenderer.render(obj);
                getActivity().runOnUiThread(new Runnable() {
                    public void run() {
                        dispatcher.loadData(html);
                    }
                });

            } catch (JSONException e) {
                Log.e("stream", "JSON Error:" + e.getMessage());
            } catch (FacebookError e) {
                Log.e("stream", "Facebook Error:" + e.getMessage());
            }
        }

        public void onFacebookError(FacebookError e, final Object state) {
            Log.e("stream", "Facebook Error:" + e.getMessage());
        }

        public void onFileNotFoundException(FileNotFoundException e,
                                            final Object state) {
            Log.e("stream", "Resource not found:" + e.getMessage());      
        }

        public void onIOException(IOException e, final Object state) {
            Log.e("stream", "Network Error:" + e.getMessage());      
        }

        public void onMalformedURLException(MalformedURLException e,
                                            final Object state) {
            Log.e("stream", "Invalid URL:" + e.getMessage());            
        }

    }
}