傻瓜式操作 第三方登录及分享



登录:

1、导入jar包




2、加权限

<!-- QQ登录授权所需权限 -->

<uses-permission android:name="android.permission.INTERNET" />

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

3、注册Activity(不用创建,复制即可)

<!-- 注册SDKActivity -->

<activity

android:name="com.tencent.tauth.AuthActivity"

android:launchMode="singleTask"

android:noHistory="true" >

<intent-filter>

<action android:name="android.intent.action.VIEW" />

<category android:name="android.intent.category.DEFAULT" />

<category android:name="android.intent.category.BROWSABLE" />

<data android:scheme="tencent1105602574" /> <!-- 开放平台获取的APPID -->

</intent-filter>

</activity>

<activity android:name="com.tencent.connect.common.AssistActivity"

android:theme="@android:style/Theme.Translucent.NoTitleBar"

android:screenOrientation="portrait"/>



4、在MainAcitivity 中定义

private static final String TAG = "MainActivity";

private static final String APP_ID = "1105602574";//官方获取的APPID

private Tencent mTencent;

private BaseUiListener mIUiListener;

private UserInfo mUserInfo;



5、在MainActivity的onCreate的方法中传入参数(复制)

//传入参数APPID和全局Context上下文

mTencent = Tencent.createInstance(APP_ID,MainActivity.this.getApplicationContext());



6、在点击事件中复制

mIUiListener = new BaseUiListener();

//all表示获取所有权限

mTencent.login(MainActivity.this,"all", mIUiListener);



7、复制内部类

    private class BaseUiListener implements IUiListener{


        @Override
        public void onComplete(Object response) {
            Toast.makeText(MainActivity.this, "授权成功", Toast.LENGTH_SHORT).show();
            Log.e(TAG, "response:" + response);
            JSONObject obj = (JSONObject) response;
            try {
                String openID = obj.getString("openid");
                String accessToken = obj.getString("access_token");
                String expires = obj.getString("expires_in");
                mTencent.setOpenId(openID);
                mTencent.setAccessToken(accessToken,expires);
                QQToken qqToken = mTencent.getQQToken();
                mUserInfo = new UserInfo(getApplicationContext(),qqToken);
                mUserInfo.getUserInfo(new IUiListener() {
                    @Override
                    public void onComplete(Object response) {
                        Log.e(TAG,"登录成功"+response.toString());
                    }


                    @Override
                    public void onError(UiError uiError) {
                        Log.e(TAG,"登录失败"+uiError.toString());
                    }


                    @Override
                    public void onCancel() {
                        Log.e(TAG,"登录取消");


                    }
                });
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }


        @Override
        public void onError(UiError uiError) {
            Toast.makeText(MainActivity.this, "授权失败", Toast.LENGTH_SHORT).show();


        }


        @Override
        public void onCancel() {
            Toast.makeText(MainActivity.this, "授权取消", Toast.LENGTH_SHORT).show();


        }


    }


    /**
     * 在调用Login的Activity或者Fragment中重写onActivityResult方法
     * @param requestCode
     * @param resultCode
     * @param data
     */
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if(requestCode == Constants.REQUEST_LOGIN){
            Tencent.onActivityResultData(requestCode,resultCode,data,mIUiListener);
        }
        super.onActivityResult(requestCode, resultCode, data);
    }

}


效果图:


参考地址:https://blog.csdn.net/cn_jack_chen/article/details/73437979

另外有Mod方法的第三方登录 时间关系未加详细步骤 可参考官方文档:http://wiki.mob.com/%E7%AC%AC%E4%B8%89%E6%96%B9%E7%99%BB%E5%BD%95/




分享(用到的Mod中的第三方分享):

1、打开项目根目录(Studio工作空间)的build.gradle,在buildscrip–>dependencies 模块下面添加  classpath ‘com.mob.sdk:MobSDK:+’





2、在使用到Mob产品(项目)的module下面的build.gradle文件里面添加引用

                        在顶部复制

apply plugin: 'com.mob.sdk'
如图:


3、可以在Mob产品的module下面的build.gradle文件里面配置ShareSDK各个社交平台的key信息
MobSDK {
     appKey "d580ad56b4b5"
     appSecret "7fcae59a62342e7e2759e9e397c82bdd"
 
     ShareSDK {
         //平台配置信息
         devInfo {
             SinaWeibo {
                 appKey "568898243"
                 appSecret "38a4f8204cc784f81f9f0daaf31e02e3"
                 callbackUri "http://www.sharesdk.cn"
                 shareByAppClient false
             }
             Wechat {
                 appId "wx4868b35061f87885"
                 appSecret "64020361b8ec4c99936c0e3999a9f249"
             }
             QQ {
                 appId "100371282"
                 appKey "aed9b0303e3ed1e27bae87c33761161d"
             }
             Facebook {
                 appKey "1412473428822331"
                 appSecret "a42f4f3f867dc947b9ed6020c2e93558"
                 callbackUri "https://mob.com"
             }
         }
     }
  
}

如图:






4、跟ImageLoader一样 创建一个class类,继承Application 在onCreate方法中 复制这行

MobSDK.init(this);
如图:
 
 


在清单文件中:







5、最后就在点击事件中复制

OnekeyShare oks = new OnekeyShare ( ) ;
     //关闭sso授权
     oks . disableSSOWhenAuthorize ( ) ;
 
     // title标题,微信、QQ和QQ空间等平台使用
     oks . setTitle ( getString ( R . string . share ) ) ;
     // titleUrl QQ和QQ空间跳转链接
     oks . setTitleUrl ( "http://sharesdk.cn" ) ;
     // text是分享文本,所有平台都需要这个字段
     oks . setText ( "我是分享文本" ) ;
     // imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
     oks . setImagePath ( "/sdcard/test.jpg" ) ; //确保SDcard下面存在此张图片
     // url在微信、微博,Facebook等平台中使用
     oks . setUrl ( "http://sharesdk.cn" ) ;
     // comment是我对这条分享的评论,仅在人人网使用
     oks . setComment ( "我是测试评论文本" ) ;
     // 启动分享GUI
     oks . show ( this ) ;

效果图:



可参考官方文档:http://wiki.mob.com/sdk-share-android-3-0-0/



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值