最新的Andr​​oid SDK的Facebook登录的工作实例 [英] Working example of latest android facebook sdk login

查看:128
本文介绍了最新的Andr​​oid SDK的Facebook登录的工作实例的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我工作的自定义Facebook的登录按钮,我发现很少有源(尤其是工作code为例)的最新Facebook的Andr​​oid SDK中。我花了一整天,但仍是code不工作。我不知道是否有任何的工程实例或您的项目code:

I am working on custom facebook login button, I found that there is little source (especially working code example) about the latest facebook android sdk. I spent all day but still the code is not working. I wonder if there is any project example or your project code of:

  1. 在Facebook登入:
  2. 共享会议等活动/片段(这样我就可以检查任何地方的应用程序的登录/注销状态)
  3. 后壁
  4. 注销

下面是我的code,但它实际上返回非登录状态,即使我logined

Here are my code, but it actually return non-login status even I am logined

登录:

public class Login {
    private final static String TAG = "FaceBookLogin";
    public Context ctx;
    public Session fb_session;

    public Login(Context _ctx) {
        ctx = _ctx;
        Settings.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS);
        fb_session = Session.getActiveSession();

        if(fb_session == null)                   
            fb_session = Session.openActiveSessionFromCache(ctx);
    }

    public void checkLogin() {
        printHashKey();
        if (fb_session != null && fb_session.isOpened()) {
            Log.i(TAG, "Facebook Login State");
        } else {
            if (fb_session == null)
                fb_session = new Session(ctx);

            Session.setActiveSession(fb_session);
            ConnectToFacebook();
            Log.i(TAG, "Facebook Not login State");
        }
    }

    public void printHashKey() {

        try {
            PackageInfo info = ctx.getPackageManager().getPackageInfo("com.project.hkseven",
                    PackageManager.GET_SIGNATURES);
            for (Signature signature : info.signatures) {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                Log.d(TAG,
                        Base64.encodeToString(md.digest(), Base64.DEFAULT));
            }
        } catch (NameNotFoundException e) {
              Log.d(TAG,""+e);
        } catch (NoSuchAlgorithmException e) {
              Log.d(TAG,""+e);
        }

    }

    private void ConnectToFacebook() {
        Session session = Session.getActiveSession();

        if(session == null)                   
            session = Session.openActiveSessionFromCache(ctx);

        if (!session.isOpened() && !session.isClosed()) {
            Log.i(TAG, "ConnectToFacebook if");
            OpenRequest newSession = new Session.OpenRequest((Activity) ctx);
            newSession.setCallback(callback);
            session.openForRead(newSession);
            try {
                Session.OpenRequest request = new Session.OpenRequest((Activity) ctx);
                request.setPermissions(Arrays.asList("email","publish_stream","publish_actions"));
            } catch (Exception e) {
                Log.d(TAG,""+e);
                e.printStackTrace();
            }
        } else {
            Log.i(TAG, "ConnectToFacebook else");
            Session.openActiveSession((Activity) ctx, true, callback);
        }
    }

    private Session.StatusCallback callback = new Session.StatusCallback() {
        public void call(final Session session, final SessionState state,
                final Exception exception) {
            Log.d(TAG,"callback" + state);
            onSessionStateChange(session, state, exception);
        }
    };

    private void onSessionStateChange(final Session session,
            SessionState state, Exception exception) {
        Log.i(TAG, "state change");
        if (session != null && session.isOpened()) {
            Log.i(TAG, "Change to Facebook Login");
        }
    }
}

任何形式的帮助是AP preciate,感谢好心帮

Any kind of help is appreciate , thanks for kindly help

推荐答案

首先安装最新的SDK,做这样的事情:

First of all install latest sdk and do something like this:

根据〜\ Facebook的SDK \ Facebook的Andr​​oid的SDK-3.5.2 \样本。

Under ~\FaceBook-Sdk\facebook-android-sdk-3.5.2\samples.

您会发现无论你已经张贴了样品。但可能这是行不通的。所以,你需要做的,使其运行是:

You will find the samples of whatever you have posted. But may be It will not work. So what you have to do to make it run is:

请在Facebook端应用程序。让您的fb_api_key从那里,并把该项目从样本得到的。

Make application on Facebook side. Get your fb_api_key from there and put in the project you get from samples.

这篇关于最新的Andr​​oid SDK的Facebook登录的工作实例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆