1

Facebookでイベントを作成するコードがあります。友達も誘いたいです。多くの調査の結果、Facebook 開発者サイトでいくつかのコーディングを見つけました。それは言います:

HTTP POST を /EVENT_ID/invited/USER_ID に発行することで、ユーザーをイベントに招待できます。HTTP POST を /EVENT_ID/invited?users=USER_ID1,USER_ID2,USER_ID3 に発行することで、複数のユーザーを招待できます。どちらも create_event 権限を必要とし、招待が成功した場合は true を返します。

このコーディングを使って友達を招待する方法を教えてください。

どうもありがとうございました!

4

2 に答える 2

0

最初に応答を JSON 応答として取得し、次に結果をハッシュ配列に格納し、選択したフレンド ID を次のような配列に入力します。

private void inviteFriends()
    {
        try
        {
            Bundle params = new Bundle();
            mAsyncRunner2.request("me/friends" , params , "GET", new RequestListener()
            {

                @Override
                public void onMalformedURLException(MalformedURLException e, Object state)
                {

                }

                @Override
                public void onIOException(IOException e, Object state)
                {

                }

                @Override
                public void onFileNotFoundException(FileNotFoundException e, Object state)
                {

                }

                @Override
                public void onFacebookError(FacebookError e, Object state)
                {

                }

                @Override
                public void onComplete(String response, Object state)
                {
                    try
                    {
                        JSONObject responseJsonObject = new JSONObject(response);
                        Log.d("InviteFriends.inviteFriends().new RequestListener() {...}:onComplete", "FB Response =>"+ responseJsonObject);
                        //event_id = event.getString("id");


                        //JSONObject responseJsonObject = new JSONObject(eventResponse);
                        JSONArray jsonArray = responseJsonObject.getJSONArray("data");


                        for (int i = 0; i < jsonArray.length(); i++)
                        {
                            HashMap<String, String> map = new HashMap<String, String>();
                            JSONObject e = jsonArray.getJSONObject(i);

                            map.put("id",    e.getString("id"));
                            map.put("name",  e.getString("name"));
                            mylist.add(map);

                            userIds = e.getString("id");
                            userName = e.getString("name");
                            Log.d("MainActivity:getAllEvents", "Friend ID, Name:" +  userIds + "," + userName);

                        }
                    }
                    catch (Exception e)
                    {
                        Log.e("log_tag", "Error parsing data "+e.toString());
                    }

                    runOnUiThread(new Runnable() {
                        public void run(){

                            ListAdapter adapter = new SimpleAdapter(getApplicationContext(), mylist , R.layout.friends_main,
                                new String[] {"name" },
                                new int[] {R.id.item_title});

                            Log.d(
                                "InviteFriends.inviteFriends().new RequestListener() {...}.onComplete(...).new Runnable() {...}:run",
                                "Friends->" + mylist.size());

                            setListAdapter(adapter);

                            final ListView lv = getListView();
                            lv.setTextFilterEnabled(true);
                            lv.setOnItemClickListener(new OnItemClickListener() {
                                public void onItemClick(final AdapterView<?> parent, View view, int position, long id) {
                                    @SuppressWarnings("unchecked")
                                    HashMap<String, String> o = (HashMap<String, String>) lv.getItemAtPosition(position);
                                    String selectedName = o.get("name");
                                    String selectedId = o.get("id");
                                    Toast.makeText(InviteFriends.this, "Your friend " + selectedName + " was selected.", Toast.LENGTH_SHORT).show();

                                    selectedFriendsIDs.add(selectedId);
                                    selectedFriendsNames.add(selectedName);
                                    selectedFriendsCount = selectedFriendsIDs.size();

                                    btnSendInvites.setText(selectedFriendsCount + " friends selected");

                                    Log.d("Selected IDs ", "" + selectedFriendsIDs);
                                    Log.d("Selected Names ", "" + selectedFriendsNames);  


                                   //make list null


                                }
                            });
                        }
                    });


                }
            }, null);


        }
        catch (Exception e)
        {

        }

次に、次のような for ループ内で友人を 1 人ずつ招待します。

public void inviteSelectedFriends()
    {
        try
        {



            String createdEventID = CreateFbEvent.eventID.toString();


            Log.d("InviteSelectedFriends:inviteSelectedFriends", "size -> " + InviteFriends.selectedFriendsIDs.size());

            for(int i = 0; i < selectedFriendsIDs.size(); i++){


            String inputParm = createdEventID + "/invited/" + selectedFriendsIDs.get(i);
            Log.d("InviteSelectedFriends:inviteSelectedFriends", "inputParm"+inputParm);
            Bundle params = new Bundle();
            mAsyncRunner2.request(inputParm, params, "POST", new RequestListener()
            {

                @Override
                public void onMalformedURLException(MalformedURLException e, Object state)
                {

                }

                public void onIOException1(IOException e, Object state)
                {

                }

                @Override
                public void onFileNotFoundException(FileNotFoundException e, Object state)
                {

                }

                @Override
                public void onFacebookError(FacebookError e, Object state)
                {

                }

                @Override
                public void onComplete(String response, Object state)
                {
                    try
                    {
                        JSONObject eventResponse = new JSONObject(response);
                        //event_id = event.getString("id");
                        Log.i(tag, "Event Response => " + eventResponse);
                        //Log.w("myapp", inputParm);
                        //Log.d("InviteSelectedFriends:inviteSelectedFriends", "INPUT PARAM->"+ inputParm.toString());

                    }
                    catch (Exception e)
                    {

                    }
                }

                @Override
                public void onIOException(IOException e, Object state)
                {
                    // TODO Auto-generated method stub

                }
            }, null);
          }
        }
        catch (Exception e)
        {

        }
    }

お役に立てれば!

于 2012-12-24T07:29:12.080 に答える
0

新しい 3.0 SDK では、次を使用します。

String eventId = "EVENT_ID";
Bundle params = new Bundle();
params.putString("users", "USER_ID1,USER_ID2,USER_ID3");
Request inviteFriendsRequest = new Request(Session.getActiveSession(),
    eventId + "/invited",
    params,
    HttpMethod.POST,
    new Request.Callback() {
        @Override
        public void onCompleted(Response response) {
            // Handle response
        }
    }
);
Request.executeAsync(inviteFriendsRequest);

イベント ID とフレンドのリストを独自の値に置き換えます。

于 2012-12-20T21:17:17.757 に答える