使用友盟社会化分享组件实现第三方登录

来源:互联网 发布:知乎日报api接口 编辑:程序博客网 时间:2024/06/05 03:46
  1. 产品概述

Android U-share 6.0sdk是在5.0+的基础上做了进一步的优化,降低了包的大小,对于三方的jar提供了更多选择(精简版,原生版),并提供了更多实用的接口,方便了用户的集成和升级。同时6.0的版本兼容5.0+的版本,老用户,只要替换对应的jar就可以了。 特别提示:之后我们会针对6.0+的版本提供更多方便个性的功能,所以建议用户升级,并留意我们接下来的新功能。
2. 获取友盟Appkey

如果你之前已经在友盟注册了应用,并获取到了Appkey,可以继续使用它.

如果你尚未在友盟注册开发者账号,需要先注册,注册之后登录你的账号,点击添加新应用,填写完应用基本信息后,将进入”下载SDK并添加代码”页面,此页面即可得到Appkey。
3. 下载并安装SDK
下载地址
下载SDK最新版 如下图所示:

这里写图片描述
这里写图片描述
这里写图片描述
解压后如图所示
在解压后的\social_sdk_example\libs目录下选择自己项目需要使用到的SDK
不太清楚可以全选导入自己项目的libs目录
这里写图片描述
然后将解压后的\main目录下的res内的文件全部导入自己的项目
这里写图片描述
这里写图片描述
到自己项目的清单配置文件中添加权限

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.READ_LOGS" /><uses-permission android:name="android.permission.CALL_PHONE"/><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /><uses-permission android:name="android.permission.GET_TASKS" /><uses-permission android:name="android.permission.SET_DEBUG_APP" /><uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /><uses-permission android:name="android.permission.GET_ACCOUNTS" /><uses-permission android:name="android.permission.USE_CREDENTIALS" /><uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />

在application节点内添加如下配置

 <meta-data            android:name="UMENG_APPKEY"            android:value="自己在友盟中申请的appkey" >        </meta-data>

申请及绑定第三方账号
登录新浪微博开放平台(点击链接),填写相关应用信息并上传icon图片。注意修改安全域名为sns.whalecloud.com 同时设置授权回调页为http://sns.whalecloud.com/sina2/callback 安全域名设置在应用信息–>基本信息,具体位置参考下图
这里写图片描述
授权回调页、取消授权回调页设置在应用信息–>高级信息,具体位置参考下图
这里写图片描述
安全域名的修改需要二次审核通过才生效,授权回调页修改即时生效
这里写图片描述浪填写签名参照下面的方法
导出带签名的apk文件并安装到手机,同时安装签名工具(点击下载)在签名工具中输入apk的包名,将获取到的签名填写到新浪微博开放平台,注意签名和包名填写错误会导致新浪微博SSO授权异常。
注意使用签名工具前请确保你的项目已经安装到手机

需要在友盟后台进行配置,如下图所示:
目前需要在友盟后台绑定的第三方账号为:新浪微博、腾讯微博、人人网、豆瓣、Qzone,其余平台如微信、QQ直接在代码中设置

绑定地址:http://umeng.com/apps

登录友盟网站->左上角选择你们的产品->组件->社会化组件->设置

这里写图片描述

在activity中调用

public class MainActivity extends Activity {    private UMShareAPI mShareAPI;    private SHARE_MEDIA platform = SHARE_MEDIA.SINA;    private UMAuthListener umAuthListener = new UMAuthListener() {        @Override        public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {            Toast.makeText( getApplicationContext(), "Authorize succeed", Toast.LENGTH_SHORT).show();            mShareAPI.getPlatformInfo(MainActivity.this, platform, new UMAuthListener() {                @Override                public void onError(SHARE_MEDIA arg0, int arg1, Throwable arg2) {                    // TODO Auto-generated method stub                }                @Override                public void onComplete(SHARE_MEDIA arg0, int arg1, Map<String, String> arg2) {                    //转换为set                    Set<String> keySet = arg2.keySet();                    //遍历循环,得到里面的key值----用户名,头像....                    for (String string : keySet) {                        //打印下                        Log.d("TAG", string);                    }                    //得到key值得话,可以直接的到value                    String name = arg2.get("screen_name");                    String url = arg2.get("profile_image_url");                    Log.d("TAG", "**"+name+"/"+"url");                }                @Override                public void onCancel(SHARE_MEDIA arg0, int arg1) {                    // TODO Auto-generated method stub                }            });        }        @Override        public void onError(SHARE_MEDIA platform, int action, Throwable t) {            Toast.makeText( getApplicationContext(), "Authorize fail", Toast.LENGTH_SHORT).show();        }        @Override        public void onCancel(SHARE_MEDIA platform, int action) {            Toast.makeText( getApplicationContext(), "Authorize cancel", Toast.LENGTH_SHORT).show();        }    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mShareAPI = UMShareAPI.get(this);            //mShareAPI.doOauthVerify(this, platform, umAuthListener);        //SHARE_MEDIA platform = SHARE_MEDIA.QQ;第三方软件是什么,SHARE_MEDIA.第三方软件名称)        //PlatformConfig.setWeixin("wx967daebe835fbeac", "5bb696d9ccd75a38c8a0bfe0675559b3"); //微信 appid appsecret        PlatformConfig.setSinaWeibo("582436437f2c7462d2003112","7f0bc46ac7efba060ac3f7610cb5f789");//新浪微博 appkey appsecret                  /*PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba"); // qq qzone appid appkey        PlatformConfig.setAlipay("2015111700822536");//alipay appid         */ }    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        // TODO Auto-generated method stub        super.onActivityResult(requestCode, resultCode, data);        mShareAPI.onActivityResult(requestCode, resultCode, data);    }    public void login(View v){        mShareAPI.doOauthVerify(this, platform, umAuthListener);    }}

实例源码地址
https://github.com/MaxPanda0/-penid-auth

1 0