LikeView Callback

I integrate Facebook LikeView into a fragment of the Android application as defined in the official fb docs .

LikeView like_button = (LikeView) findViewById(R.id.like_view);
like_button.setObjectId(...);

I also processed onActivityResult as follows:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);

uiHelper.onActivityResult(requestCode, resultCode, data, null);
.....
}

I cannot programmatically find if the user liked the page or canceled it from LikeView. onActivityResults fires every time a pop-up reminder returns, but without information about the result.

Please help me determine what I am missing. Any help would be greatly appreciated.

+4
source share
2 answers

, onActivityResults:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
       default:
            if (resultCode == RESULT_OK) {
                // verify we're returning from like action
                if ("com.facebook.platform.action.request.LIKE_DIALOG".equals(data.getStringExtra("com.facebook.platform.protocol.PROTOCOL_ACTION"))) {
                    // get action results
                    Bundle bundle = data.getExtras().getBundle("com.facebook.platform.protocol.RESULT_ARGS");
                    if (bundle != null) {
                        bundle.getBoolean("object_is_liked"); // liked/unliked
                        bundle.getInt("didComplete");
                        bundle.getInt("like_count"); // object like count
                        bundle.getString("like_count_string");
                        bundle.getString("social_sentence");
                        bundle.getString("completionGesture"); // liked/cancel/unliked
                    }
                }
            }
            break;
}
+7

.

        private String siLeGusta = "";    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_final);
            ...
            ...

            Session session = Session.getActiveSession(); // si estas en un activity diferente

            String solicitud = "/"+uid+"/likes/"+page_id; //uid=user_id, page_id = el id de la pagina que deseas saber si ya tiene like del usuario.
            new Request(
                    session,
                    solicitud, //"/{user-id}/likes/{page-id}",
                    null,
                    HttpMethod.GET,
                    new Request.Callback() {
                        public void onCompleted(Response response) {
                            GraphObject graphObject = response.getGraphObject();
                            //String s = txtFinal.getText().toString();
                            if (graphObject != null) {
                                JSONObject jsonObject = graphObject.getInnerJSONObject();
                                try {
                                    JSONArray array = jsonObject.getJSONArray("data");
                                    for (int i = 0; i < array.length(); i++) {
                                        JSONObject object = (JSONObject) array.get(i);
                                        siLeGusta = object.get("id").toString();

                                    }
                                } catch (JSONException e) {

                                    e.printStackTrace();
                                }
                            }
                            if (siLeGusta.equals(page_id)){
                                likeView.setVisibility(View.INVISIBLE);
                                txtFinal.setText("A tí te gusta la página de ....");
                                txtFinal.setTextSize(30);

                            }else{
                                txtFinal.setText("Todavía no has dado LIKE a la página de ....");
                                txtFinal.setTextSize(30);
                                likeView.setVisibility(View.VISIBLE);
                            }
                        }
                    }).executeAsync();

... //otras instrucciones aquí.

    }
0

All Articles