从Facebook获取数据并从中推送通知

时间:2014-08-13 07:19:23

标签: android facebook google-cloud-messaging

来自fetch data的{​​{1}}用户是否可以,例如。他喜欢的页面。我需要获取此信息并在Android手机上生成FACEBOOK。什么应该接近和参考将不胜感激

1 个答案:

答案 0 :(得分:0)

try this to login, check session and get information from facebook , you can customized the permissions for the information you want.
    private void performFacebookLogin()
    {
        Log.d("FACEBOOK", "performFacebookLogin");
        final Session.NewPermissionsRequest newPermissionsRequest = new Session.NewPermissionsRequest(this, Arrays.asList("email"));
        Session openActiveSession = Session.openActiveSession(this, true, new Session.StatusCallback()
        {
            @Override
            public void call(Session session, SessionState state, Exception exception)
            {
                Log.d("FACEBOOK", "call");
                if (session.isOpened() && !isFetching)
                {
                    Log.d("FACEBOOK", "if (session.isOpened() && !isFetching)");
                    isFetching = true;
                    session.requestNewReadPermissions(newPermissionsRequest);
                    Request getMe = Request.newMeRequest(session, new GraphUserCallback()
                    {
                        @Override
                        public void onCompleted(GraphUser user, Response response)
                        {
                            Log.d("FACEBOOK", "onCompleted");
                            if (user != null)
                            {
                                Log.d("FACEBOOK", "user != null");
                                org.json.JSONObject graphResponse = response.getGraphObject().getInnerJSONObject();
                                String email = graphResponse.optString("email");
                                String id = graphResponse.optString("id");
                                //String facebookName = user.getUsername();
                                System.out.println("Birthday--------------"+user.getBirthday());
                                System.out.println("User ID----------------"+user.getId());
                                System.out.println("LINK---------------------"+user.getLink());
                                System.out.println("username---------------"+user.getUsername());
                                System.out.println("Hashcode----------------"+user.hashCode());
                                System.out.println("Inner JSON--------------"+user.getInnerJSONObject());
                                System.out.println("Location-------------------"+user.getLocation());
                                System.out.println("class------------------------"+user.getClass());
                                System.out.println(user.getProperty("email"));


                                if (email == null || email.length() < 0)
                                {
                                    System.out.println(
                                            "Facebook Login"+
                                                    "An email address is required for your account, we could" +
                                            " not find an email associated with this Facebook account. Please associate a email with this account or login the oldskool way.");

                                    return;
                                }
                            }
                        }
                    });
                    getMe.executeAsync();
                }
                else
                {
                    if (!session.isOpened())
                        Log.d("FACEBOOK", "!session.isOpened()");
                    else
                        Log.d("FACEBOOK", "isFetching");
                }
            }
        });
    }