1

Facebookでステータスを共有するために次の方法を使用しています。

if (facebook.isSessionValid()) {
        Bundle parameters = new Bundle();
        parameters.putString("message", msg);
        try {
            String response = facebook.request("me/feed", parameters,"POST");
            System.out.println(response);
            Toast.makeText(context, "Posted Successfully", Toast.LENGTH_LONG).show();
        } catch (IOException e) {
            e.printStackTrace();
        }
    } else {
        login();
    }

パラメーターallow = "profileid1,profileid2,profileid3"を持つグラフ api を確認しましたが、オブジェクトに埋め込まれています。今、このパラメーターを bundle に追加する方法がわかりません。

これは、グラフ API エクスプローラーが結果を表示する方法です。

    "privacy": {
    "description": "Friends; Except: Artemas Ali, Artemas Ali",
    "value": "CUSTOM",
    "friends": "ALL_FRIENDS",
    "networks": "",
    "allow": "",
    "deny": "1000036022153129,1000017534323389"
  }, 
4

1 に答える 1

1

JSON オブジェクトに値を追加し、文字列に変換して値を API に渡すだけで、これを実現しました。

 if (facebook.isSessionValid()) {
        Bundle parameters = new Bundle();
        parameters.putString("message", msg);
        if(!customUsers.equals("")){
        JSONObject obj= new JSONObject();

        try {
               obj.put("value", "CUSTOM");
               obj.put("friends", "ALL_FRIENDS");
               try{
                   obj.put("deny", customUsers);   
               }catch(StringIndexOutOfBoundsException ex){
                   Log.d(customUsers, ex.toString());
               }

        } catch (JSONException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        parameters.putString("privacy", obj.toString());
        }
        try {
            String response = facebook.request("me/feed", parameters,"POST");
            System.out.println(response);
            Toast.makeText(context, "Posted Successfully", Toast.LENGTH_LONG).show();
        } catch (IOException e) {
            e.printStackTrace();
        }
于 2013-02-25T13:39:38.843 に答える