1

我希望我的应用程序能够向朋友的 Facebook 墙发送一些文本。这是我到目前为止所拥有的,

    private void postOnFriendsWall() {
            Bundle params = new Bundle();
            params.putString("to", ""); 
            facebook.dialog(this, "feed", params, new DialogListener()

它使向我自己的墙上发送消息成为可能。我试图通过让 id 参数为空来显示所有朋友,但它不起作用,它只能让我在自己的墙上发帖。是否有一个 facebook 对话框,用户可以在其中选择他想向谁发送消息?

我已经看到了其他很容易做到的答案,但前提是您事先知道朋友的 ID。我不知道我的应用程序用户的朋友ID,那么如何动态获取列表?

编辑:只是认为如果我描述我想要的流程会使我的问题更清楚:

  1. 用户在我的应用上登录 Facebook(完成)
  2. 通过点击一个按钮,用户选择他想将消息发送给谁(我不知道如何拥有这个)
  3. 用户发送消息
4

1 回答 1

1

您可以通过使用图形 api 来简单地做到这一点。你要做的是

1) 获取好友列表(带有姓名和 Facebook ID)

2) 使用图形 api 和“FriendID/feed”作为图形 URL 发出“POST”请求


以下是我的代码。在使用我的代码之前,您应该尝试更多地了解图形 api 和 JSONObject。

1) 获取好友列表

public JSONArray GetFriendList(){
    Bundle params = new Bundle();
    String resp="";
    JSONArray resp_json=null;
    try {
        resp = fb.request("me/friends", params, "GET");
                    resp_json=new JSONArray(resp);
    } catch (FileNotFoundException e) {
    //...
    } catch (MalformedURLException e) {
    //...
    } catch (IOException e) {
    //...
    }catch(JSONException e){
            //...
}
    return resp_json;//JSONArray of friend list, try to use debug mode to browse the content and parse it yourself,get a JSONObject from the JSONArray and get the user ID of that JSONObject
};

2) 贴朋友墙

public String PostWall(String Message,int Level,String FriendID){
 //FriendID can be grepped form the function above
|/*REMARK:Privacy Level
* level 0 ==>only me
* level 1==>friend only
* level 2==>public
*/
Bundle params = new Bundle();
params.putString("message", Message);
JSONObject privacy = new JSONObject();
try {
    switch (Level){
        case 0: 
            privacy.put("value", "SELF");
            break;
        case 1: 
            privacy.put("value", "ALL_FRIENDS");
            break;
        case 2: 
            privacy.put("value", "EVERYONE");
        break;
    }
} catch (JSONException e1) {
    //
}
params.putString("privacy", privacy.toString());
String resp= "";
try {
    resp = fb.request(FriendID+"/feed", params, "POST");
   } catch (FileNotFoundException e) {
} catch (MalformedURLException e) {
} catch (IOException e) {
}
try{
    resp = new JSONObject(resp).getString("id");
    return resp;//The post ID
}catch(JSONException e1){
    //
}
};
于 2012-10-19T14:59:26.673 回答