Android facebook VK 登录与分享 开源SDK

自己封好的SDK 直接调用 就可以登录
包含facebook VK 登录分享

首先导入SDK 在项目gradle 添加FB,VK的引用
如果你不需要修改源码 直接导入arr文件 比较方便

repositories {
    mavenCentral()
}
dependencies {
    //compile 'com.facebook.android:facebook-android-sdk:4.+'

        compile 'com.facebook.android:facebook-android-sdk:4.25.0'
    compile 'com.vk:androidsdk:1.6.8'
    compile project(':mqsdk')
    }

一.在 清单文件添加声明 记得添加网络权限

        <!-- facebook -->
        <activity
            android:name="com.mq.mqsdk.MyFacebook"
            android:theme="@style/fun" />
        <meta-data
            android:name="com.facebook.sdk.ApplicationId"
            android:value="@string/facebook_app_id" />

        <!-- VK -->
        <activity
            android:name="com.mq.mqsdk.MyVK"
            android:theme="@style/fun"></activity>
        <activity
            android:name="com.vk.sdk.VKServiceActivity"
            android:label="ServiceActivity"
            android:theme="@style/VK.Transparent" />

在Strings 添加 facebook 和VK 的AppId
id是fb和VK后台创建项目生成的

    <string name="facebook_app_id">741826486001816</string>
    <integer name="com_vk_sdk_AppId">6017658</integer>

二 声明自己的MyApplication 在MyApplication 的 onCreate添加VK 初始化

  <application
        android:name=".MyApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();

        VKSdk.initialize(getApplicationContext());

    }
}

三准备工作已经完成 可以直接调用 实现 FB VK的登录与分享

3.1 facebook 登录分享

         /***
         * facebook登陆
         */
   initSDK.SDKManager().setFacebook(MainActivity.this, new initSDK.onMQFacebookListener() {
                    @Override
                    public void Process(Profile profile, String Token) {

                        Toast.makeText(MainActivity.this, 
                        "用户数据是" + profile.getName(), Toast.LENGTH_SHORT).show();
                    }
                });
        /***
         * facebook 分享
         */
               initSDK.SDKManager().setFacebookShare(MainActivity.this, 
                "标题", "描述", "www.baidu.com", new initSDK.onMqFacebookShareLinstener() {
                    @Override
                    public void Process(int code) {
                        switch (code) {
                            case initSDK.SUCCESS:

                                Toast.makeText(MainActivity.this,
                                 "分享成功", Toast.LENGTH_SHORT).show();

                                break;
                            case initSDK.CANCEL:

                                Toast.makeText(MainActivity.this,
                                 "分享取消", Toast.LENGTH_SHORT).show();


                                break;
                            case initSDK.ERROR:

                                Toast.makeText(MainActivity.this,
                                 "分享错误", Toast.LENGTH_SHORT).show();

                                break;
                        }
                    }
                });

3.2 VK登录分享

        /***
         * VK登录
         */
                initSDK.SDKManager().setVKlogin(MainActivity.this,
                 new initSDK.onMQVKLoginListener() {
                    @Override
                    public void process(VKAccessToken res, VKResponse response) {
                        final String userId = res.userId.toString();
                        final String token = res.accessToken.toString();

                        Toast.makeText(MainActivity.this,
                         "用户数据是" + response.json, Toast.LENGTH_SHORT).show();
                    }
                });
        /***
         * VK分享
         */
                final Bitmap b = BitmapFactory.
                decodeResource(getResources(), R.mipmap.ic_launcher);

                initSDK.SDKManager().setVKShare(MainActivity.this,
                 "标题", "描述", b, "www.baidu.com", new initSDK.onMQVKShareLinstener() {
                    @Override
                    public void process(int code) {

                        switch (code) {
                            case initSDK.SUCCESS:

                                Toast.makeText(MainActivity.this,
                                 "分享成功", Toast.LENGTH_SHORT).show();

                                break;
                            case initSDK.CANCEL:

                                Toast.makeText(MainActivity.this,
                                 "分享取消", Toast.LENGTH_SHORT).show();


                                break;
                            case initSDK.ERROR:

                                Toast.makeText(MainActivity.this,
                                 "分享错误", Toast.LENGTH_SHORT).show();

                                break;
                        }

                    }
                });

四 后台密钥
fb 和VK 如果后台不配置密钥 可以在没有客户端的情况下 登录分享网页版

这里用代码生成 然后配置到后台。

    /**
     * facebook 后台需要配置的 key hashes
     * 可以在这里生成 配置在后台
     */
    private void getKeyHash() {
        try {
            PackageInfo info = getPackageManager().getPackageInfo(
                    "com.mq.mqsdkdemo",
                    PackageManager.GET_SIGNATURES);
            for (Signature signature : info.signatures) {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                System.out.println("这里可以获取facebook KeyHash" + Base64.encodeToString(md.digest(), Base64.DEFAULT));
            }
        } catch (PackageManager.NameNotFoundException e) {

        } catch (NoSuchAlgorithmException e) {

        }
    }

    /**
     * VK 后台需要配置的 签名
     * 可以在这里生成 配置在后台
     */
    private void getVKkey() {
        String[] fingerprints = VKUtil.getCertificateFingerprint(this, this.getPackageName());

        for (String fingerprint : fingerprints) {
            System.out.println("这里可以获取VK签名" + fingerprint);
        }
    }

附SDKDemo 下载地址

http://download.csdn.net/detail/jin290/9834725

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值