【问题标题】:Post the comment on any wall of Facebook in Android在 Android 的 Facebook 的任何墙上发表评论
【发布时间】:2011-12-16 12:28:50
【问题描述】:

我正在使用 Facebook sdk (https://github.com/facebook/facebook-android-sdk/) 来显示 NewsFeed。我可以在我的应用程序中显示所有新闻源墙。

现在我需要在我可见的任何墙上发送评论。以及如何通过我的应用程序像墙和评论一样。有人可以帮我吗?

提前致谢。

【问题讨论】:

  • 您是要评论实际的墙吗?就像 Juicy Scripter 在下面指出的那样,我认为您只能对帖子发表评论(墙是帖子的集合)。您能否提供任何澄清(最好在赏金结束之前)?
  • @dstricks,我也想成为任何墙和评论。给定的代码还不够。
  • 你应该明确你到底想要什么,并做好自己的功课,帮助我们帮助你,而不是仅仅要求我们为你提供最终代码。你做了什么来获得想要的功能?也许阅读How to Ask 是正确的做法。

标签: android facebook


【解决方案1】:

要明确:

  • 您只能评论 帖子(而不是实际的墙本身)
  • 您只能评论发布(不是实际的墙本身)

使用 Facebook SDK,您可以为 cmets 执行以下操作:

Facebook facebook = new Facebook(APP_ID);
String commentText = "I love blu-ray";
String postId = "7568536355_333422146668093"; //a lifehacker post about blu-ray

String graphPath = postId + "/comments";
Bundle params = new Bundle();
params.putString("message", commentText);
facebook.request(graphPath, params, "POST");

...以及以下喜欢的内容:

Facebook facebook = new Facebook(APP_ID);
String postId = "7568536355_333422146668093"; //a lifehacker post about blu-ray

String graphPath = postId + "/likes";
facebook.request(graphPath, new Bundle(), "POST");

【讨论】:

  • :: 我怎样才能得到 postId ?
【解决方案2】:

您可以通过传递使用graph api解析所有提要

mAsyncRunner.request("me/home", params, new graphApiRequestListener());

它会返回 json 数据以及你所有的帖子、cmets 和喜欢的内容 您可以解析该数据获取所有commnets

有关更多信息,请搜索 hackbook for android 示例

【讨论】:

    【解决方案3】:

    您应该熟悉Facebook Android SDK usage of Graph APIPost object(cmets 连接)和Comment Object Graph API 文档(点赞部分)。

    • 您不能对墙本身发表评论,只能对其中一个帖子发表评论。
    • 您可以通过 Graph API 在墙上发帖
    • 您可以通过 Graph API 对帖子发表评论
    • 您可以通过 Graph API 为帖子和评论创建点赞

    更新:

    以下关于创建评论和点赞的示例(如何为帖子创建评论的示例以及已在此问题的其他答案中显示的帖子的赞):

    // I assume you already have post_id (which is constructed from USERID_MESSAGEID)
    Facebook mFacebook = new Facebook(APP_ID);
    Bundle params = new Bundle();
    params.putString("message", "This is a comment text");
    String comment_id = facebook.request(post_id + "/comments", params, "POST");
    
    // Once you have comment_id it can be used for liking it.
    facebook.request(comment_id + "/likes", new Bundle(), "POST");
    

    【讨论】:

    • :: 我怎样才能得到 postId?
    【解决方案4】:
     'Use Facebook Api as library download api and use it as library'
    
    
    
    
    
    
    
        private static final String FACEBOOK_APPID = "Your Api key";
    
                    Facebook facebook = new Facebook(FACEBOOK_APPID);
    
          facebook.authorize(this,new String[] { "user_photos,publish_checkins,publish_actions,publish_stream" },
                                 new DialogListener() {
                                    @Override
                                    public void onComplete(Bundle values) {
                                        postImageonWall();
                                        try {
                                            facebook.logout(TestActivity.this);
    
                                        } catch (MalformedURLException e) {
                                            // TODO Auto-generated catch block
                                            e.printStackTrace();
                                        } catch (IOException e) {
                                            // TODO Auto-generated catch block
                                            e.printStackTrace();
                                        }
                                        // finish();
    
                                    }
    
                                    @Override
                                    public void onFacebookError(FacebookError error) {
    
                                    }
    
                                    @Override
                                    public void onError(DialogError e) {
    
                                    }
    
                                    @Override
                                    public void onCancel() {
    
                                    }
    

    使用 postImageOnWall 方法

                public void postImageonWall() {
    
                        byte[] data = null;
    
                        Bitmap bi = BitmapFactory.decodeFile(filepath);
                        ByteArrayOutputStream baos = new ByteArrayOutputStream();
                        bi.compress(Bitmap.CompressFormat.JPEG, 100, baos);
                        data = baos.toByteArray();
                    AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(facebook);
                        mAsyncRunner.request(null, params, "POST", new RequestListener() {
    
                            @Override
                            public void onMalformedURLException(MalformedURLException e,
                                    Object state) {
                                Log.d("MalformedURLException", e.getMessage());
                            }
    
                            @Override
                            public void onIOException(IOException e, Object state) {
                                Log.d("onIOException", e.getMessage());
                            }
    
                            @Override
                            public void onFileNotFoundException(FileNotFoundException e,
                                    Object state) {
                                Log.d("FileNotFoundException", e.getMessage());
                            }
    
                            @Override
                            public void onFacebookError(FacebookError e, Object state) {
                                Log.d("onFacebookError", e.getMessage());
                            }
    
                            @Override
                            public void onComplete(String response, Object state) {
                                Log.d("onComplete", response);
                            }
                        }, null);
    
                    }
    

    【讨论】:

    • 这不是我的问题的答案。因为我想在任何墙上发表评论,喜欢这面墙并发表评论。贴墙不是我的目的,我已经这样做了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 1970-01-01
    • 2012-01-11
    相关资源
    最近更新 更多