zoukankan      html  css  js  c++  java
  • Android平台接入Facebook登录

    官方教程地址:
    https://developers.facebook.com/docs/android/getting-started

    开发环境为Android Studio,官方要求SDK最低版本为“API 15: Android 4.0.3”。

    一、创建应用

    1、激活账号

    按照要求创建APP,生成appId。

    这里写图片描述

    注意:在填写APP名称的时候,不能包含任何有关facebook的名字或简写,否则无法通过。

    2、配置Gradle文件

    配置app下的build.gradle文件。
    如下:

    //添加到dependencies之前
    repositories { 
        mavenCentral() 
    }
    • 1
    • 2
    • 3
    • 4

    在dependencies中添加

    compile 'com.facebook.android:facebook-android-sdk:4.6.0'
    • 1

    3、添加PackName和Default Activity Class Name

    这里写图片描述

    4、生成KeyHash并添加到指定位置

    生成方式参照“三、Facebook登录Key Hash配置”,生成的Key Hash添加到对应的位置中,区别测试和发布版本。

    二、客户端接入

    1、Facebook 统计

    如果需要统计app启动 安装等相关数据,可以在MainActivity中调用如下代码:

    @Override
    protected void onResume() {
        super.onResume();
        // Logs 'install' and 'app activate' App Events.
        AppEventsLogger.activateApp(this);
    }
    
    @Override
    protected void onPause() {
        super.onPause();
        // Logs 'app deactivate' App Event.
        AppEventsLogger.deactivateApp(this);
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    2、初始化Facebook

    在Activity或者Application的onCreate中对Facebook进行初始化。

    FacebookSdk.sdkInitialize(getApplicationContext());
    • 1

    3、添加Facebook App ID,声明权限

    App ID进入到下图所示界面可以查看

    这里写图片描述

    注意:AppID必须添加到strings.xml中,string名字必须是facebook_app_id。

    声明权限 <uses-permission android:name="android.permission.INTERNET"/>

    4、在application中添加meta-data

    <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
    • 1

    5、注册callback

    callbackManager = CallbackManager.Factory.create();
    LoginManager.getInstance().registerCallback(...);
    • 1
    • 2

    在用户成功授权之后,回调onActivityResult(),需要重写 onActivityResult()

    callbackManager.onActivityResult(requestCode, resultCode, data);
    • 1

    6、执行登录操作

    LoginManager.getInstance().
        logInWithReadPermissions(this, Arrays.asList("public_profile", "user_friends"));
    • 1
    • 2

    7、获取AccessTokens

    AccessToken accessToken = AccessToken.getCurrentAccessToken();
    • 1

    如果accessToken!=null或者accessToken没有过期,则可以通过accessToken直接获取登录token,accessToken.getToken()
    否则再登陆成功之后,通过loginResult获取loginResult.getAccessToken().getToken()

    三、Facebook登录Key Hash配置

    1、下载并安装OpenSSL

    http://slproweb.com/products/Win32OpenSSL.html 获取,下载如图所示第一个即可。

    这里写图片描述

    将下载的软件安装到默认路径中,默认路径为C盘,运行cmd,在命令行中进入 openssl.exe的路径,一般为 C:OpenSSL-Win32in 。

    2、生成Key Hash值

    使用命令:

    Keytool -exportcert -alias <YourAppKetStoreAlias> -keystore <KeyStorePath> | openssl sha1 -binary | openssl base64
    • 1

    注意: 应该为 游戏线上apk签名文件的alias,应该为签名文件keystore的所在路径。

    执行后 提示“输入密钥库口令”,则输入口令并回车。点击回车出现的28位字符串,即为需要的key Hash值。

    如果遇到出现警告,该警告可忽略。

    在红色框内填入前面获取到的key hash值,然后点击右下角的 Save Changes按钮保存配置。
    这里写图片描述

    四、Facebook开发模式修改为线上模式

    在开发模式下,只能使用facebook后台添加的开发者账号进行登录,其他账号无法正常登陆。等APP上线时,需要将facebook的开发模式修改。

    1、填写Contact Email(必填)

    在应用的setting–>Basci中,填写Contact Email,如图:

    这里写图片描述

    2、切换模式

    切换到 Status&Review页面,修改2处按钮为Yes。

    这里写图片描述

    转:http://blog.csdn.net/liuweiballack/article/details/49816871

     
  • 相关阅读:
    HDU 5842 Lweb and String 【乱搞】
    POJ 2342 Anniversary party 【树形DP】
    [ZJOI2008]树的统计Count 【树链剖分】
    UVA 136 & POJ1338 Ugly Numbers
    ccf 201803-2
    ccf 201809-5
    ccf 201809-4
    ccf 201809-2
    ccf 201809-1
    最小费用可行流
  • 原文地址:https://www.cnblogs.com/jasonduan/p/5125162.html
Copyright © 2011-2022 走看看