移动共享开发(六)授权API接口和分享API接口

新浪微博、腾讯微博、豆瓣、人人网、QQ在执行分享前需要先进行授权操作, 其他平台可以直接调用分享API接口。

授权接口 ( doOauthVerify )

技术分享

授权接口以新浪为例,添加下面的代码:

注意在授权前先检查是否已经授权过,重复授权有可能引起错误

OauthHelper.isAuthenticated(mContext,SHARE_MEDIA.SINA)

确保未授权,则先调用下面的代码

mController.doOauthVerify(mContext, SHARE_MEDIA.SINA, new UMAuthListener() {
    @Override
    public void onStart(SHARE_MEDIA platform) {
        Toast.makeText(mContext, "授权开始", Toast.LENGTH_SHORT).show();
    }
    @Override
    public void onError(SocializeException e, SHARE_MEDIA platform) {
        Toast.makeText(mContext, "授权错误", Toast.LENGTH_SHORT).show();
    }
    @Override
    public void onComplete(Bundle value, SHARE_MEDIA platform) {
        Toast.makeText(mContext, "授权完成", Toast.LENGTH_SHORT).show();
        //获取相关授权信息或者跳转到自定义的分享编辑页面
        String uid = value.getString("uid");
    }
    @Override
    public void onCancel(SHARE_MEDIA platform) {
        Toast.makeText(mContext, "授权取消", Toast.LENGTH_SHORT).show();
    }
} );

授权成功后可以直接调用分享API接口

//设置分享内容
mController.setShareContent("友盟社会化组件(SDK)让移动应用快速整合社交分享功能,http://www.umeng.com/social");
//设置分享图片
mController.setShareMedia(new UMImage(mContext, "http://www.umeng.com/images/pic/banner_module_social.png"));
//直接分享
mController.directShare(mContext, SHARE_MEDIA.SINA,
            new SnsPostListener() {
            @Override
            public void onStart() {
                Toast.makeText(mContext, "分享开始",Toast.LENGTH_SHORT).show();
            }
            @Override
            public void onComplete(SHARE_MEDIA platform,int eCode, SocializeEntity entity) {
                if(eCode == StatusCode.ST_CODE_SUCCESSED){
                    Toast.makeText(mContext, "分享成功",Toast.LENGTH_SHORT).show();
                }else{
                    Toast.makeText(mContext, "分享失败",Toast.LENGTH_SHORT).show();
                }
            }
    });

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。