如何使用访问令牌在Facebook墙上发布数据

时间:2012-09-03 11:36:27

标签: java facebook-graph-api

  

可能重复:
  Posting to a wall of a facebook user using the graph api

如何使用facebook API生成的访问令牌在Facebook墙上发布数据。

1 个答案:

答案 0 :(得分:1)

使用commons-http-client和graph api,代码如下所示。

class WallPostService{
    ...
    public makeWallPost(){
        HttpClient client = null;
        PostMethod method = null;
        String urlStr = null;
        String linkText = ""; //Facebook page name or alias
        String linkURL = ""; //Facebook page URL
        String response = null;
        String accessToken = null;

        try{
            urlStr = "https://graph.facebook.com/$PROFILE_ID$/feed";
            urlStr = urlStr.replace("$PROFILE_ID$", facebookId);
            accessToken = getAccessToken();//[USER ACCESS TOKEN]
            client = new HttpClient();
            method = new PostMethod(urlStr);
            method.setRequestHeader("pageEncoding", "UTF-8");
            method.setRequestHeader("Content-Type", "text/html; charset=UTF-8");

            method.addParameter("access_token", accessToken);
            method.addParameter("message", "");
            method.addParameter("link", "Link of wall post header");
            method.addParameter("name", "Header of wall post");
            method.addParameter("actions", "[{\"name\": \"" + linkText + "\" , \"link\": \"" + linkURL + "\"}]");

            method.addParameter("caption", " ");
            method.addParameter("description", "message body here");
            method.addParameter("picture", "http://www.example.com/test.jpg");
            client.executeMethod(method);
            response = method.getResponseBodyAsString();
           }
           catch(Exception e){

           }
           finally{
               method.releaseConnection();
           }

    }
}