使用Android的简单的Java类的Facebook原生登录简单、Android、Facebook、Java

2023-09-07 01:31:00 作者:悬世尘埃

我创建一个简单的库项目只包含的Java classes.There的应该是它没有任何活动的参与 我跟着教程Facebook的开发者网页。 https://developers.facebook.com/docs/android/

根据我试图执行它在我的Java类,如

  Session.openActiveSession(一,真正的,新的Session.StatusCallback()
{
                    @覆盖
                    公共无效电话(最后一届会议,最后SessionState会的状态,最终异常除外)
                    {Log.e(会议,session.getAccessToken());
                        Log.e(会话状态,session.toString());
                        如果(session.isOpened())
                        {
                            Toast.makeText(C,session.getAccessToken(),Toast.LENGTH_LONG).show();
                            Log.e(访问令牌,session.getAccessToken());
                        }
                        其他
                        {
                            Log.e(会议,不开);

                        }

                    }
                });
 

现在,当我使用记录器检查会话值,结果是

 会话{状态:开幕,access_token = ACCESS_TOKEN_REMOVED}
 
App 1 在 Windows 上使用 Android 手机,你可以试试这款图形化工具

我的要求是:

在使用简单的Java类只无活动简单的库与本机登录支持 流量是一样,如果一个用户已经登录了Facebook本机应用程序,那么我的图书馆将检索会话访问令牌否则我的网络视图Facebok的将继续 我只需要Facebook的访问令牌 解决方案

我以这种方式来实现它。可能这可以帮助你。

  //启动Facebook会话
公共无效facebookstart(){
    // TODO自动生成方法存根

    Session.openActiveSession(这一点,真,新Session.StatusCallback(){

        //回调时,会话状态变化
        @燮pressWarnings(德precation)
        @覆盖
        公共无效呼叫(会话的会话,SessionState会的状态,
                例外的例外){
            如果(session.isOpened()){
                Log.e(,
                        会议详细信息
                                +会话);
                acesstoken = session.getAccessToken();
                //使请求/ ME API
                Request.executeMeRequestAsync(会话,
                        新Request.GraphUserCallback(){

                            //后与用户图形API响应回调
                            // 目的
                            @覆盖
                            公共无效onCompleted(GraphUser用户,
                                    响应响应){
                                如果(用户!= NULL){
                                    PV =(ProfilePictureView)findViewById(R.id.profilePictureView1);
                                    pv.setProfileId(user.getId());
                                    欢迎=(TextView中)findViewById(R.id.name);
                                    welcome.setText(你好+ user.getName()+\ N++ user.getBirthday()
                                            +)!;
                                    logout.setText(注销);
                                    图像();
                                }
                            }
                        });
            }
        }
    });
}
 

I am creating a simple library project consisting of only java classes.There should be no activity involvement in it I followed the tutorials in facebook's developers page https://developers.facebook.com/docs/android/

Based on that i tried to implement it on my java class such as

Session.openActiveSession(a,true,new Session.StatusCallback() 
{
                    @Override   
                    public void call(final Session session, final SessionState state, final Exception exception) 
                    {Log.e("Session",session.getAccessToken());
                        Log.e("Session Status",session.toString());
                        if(session.isOpened())
                        {
                            Toast.makeText(c,session.getAccessToken(),Toast.LENGTH_LONG).show();
                            Log.e("Access Token",session.getAccessToken());
                        }
                        else
                        {
                            Log.e("Session","Not Opened");

                        }

                    }
                });

Now when i check session value using logger,result is

 session {state:OPENING,access_token=ACCESS_TOKEN_REMOVED}

My Requirements are :

Simple Library with native login support using simple java classes only No Activity Flow is like if a user is already logged-in facebook native app,then my library will retrieve access token from session else my web view for facebok will continue I need only facebook access token

解决方案

i implemented it in this way. May be this helps you.

//starting facebook session
public void facebookstart() {
    // TODO Auto-generated method stub

    Session.openActiveSession(this, true, new Session.StatusCallback() {

        // callback when session changes state
        @SuppressWarnings("deprecation")
        @Override
        public void call(Session session, SessionState state,
                Exception exception) {
            if (session.isOpened()) {
                Log.e("",
                        "session details"
                                + session);
                acesstoken=session.getAccessToken();
                // make request to the /me API
                Request.executeMeRequestAsync(session,
                        new Request.GraphUserCallback() {

                            // callback after Graph API response with user
                            // object
                            @Override
                            public void onCompleted(GraphUser user,
                                    Response response) {
                                if (user != null) {
                                    pv = (ProfilePictureView) findViewById(R.id.profilePictureView1);
                                    pv.setProfileId(user.getId());
                                    welcome = (TextView) findViewById(R.id.name);
                                    welcome.setText("Hi  " + user.getName()+"\n"+""+user.getBirthday()
                                            + "!");
                                    logout.setText("log out");
                                    image();
                                }
                            }
                        });
            }
        }
    });
}