第三方应用_第三方应用打开 - CSDN
精华内容
参与话题
  • 教您在项目中快速接入第三方应用

    千次阅读 2013-12-17 13:33:59
    写在前面:在IT行业,各大平台依靠自己雄厚的资本,为开发者提供了各种让人眼花缭乱的第三方应用:云存储、云推送、应用引擎等等,开发者可以在自己的应用中集成这些第三方应用,大大节约开发成本,缩短开发时间。...

    写在前面:在IT行业,各大平台依靠自己雄厚的资本,为开发者提供了各种让人眼花缭乱的第三方应用:云存储、云推送、应用引擎等等,开发者可以在自己的应用中集成这些第三方应用,大大节约开发成本,缩短开发时间。

    本文以接入百度云推送为例,结合本菜鸟的一点点经验,简单描述如何快速高效的在自己的应用中接入第三方应用。


    第一步:选择

    根据自己项目的实际需求,选择最适合自己的第三方应用。



    第二步:了解

    要仔细阅读您选择的第三方的文档,知道它的主要功能,稳定性,依赖环境,应用场景,收费情况等,如果这些都OK,那么进入第三步。



    第三步: 下载demo

    仔细阅读开发指南,下载官方提供的demo,尝试运行,并理解大致的工作原理和执行流程。

    理解demo的工作原理很重要,因为只有理解了工作原理,你才能知道它的运行环境,对接时候才不会漏掉重要配置

    一般我们不会用到第三方的所有功能,因此我们只需要仔细了解我们关心的那部分就可以了。



    第四步: 尝试把第三方接入到自己的应用

    在这之前,建议您查看下是否有官方推荐的sdk,使用sdk可以大大缩短这个繁琐过程。

    当仔细了解了对接方式后,我们需要选择自己最擅长的方式接入到自己的应用,这一步是遇到问题可能性最大的一个环节,如何缩短这个环节花费的时间和精力是本文的重点,我选择放到最后说明(本人就在这里走了弯路)。


    最后: 关注版本变更信息

    这点也很重要,一般每次升级版本都是修复已知BUG或者增加新的内容,所以您有必要持续关注。


    到这里如果一路顺风,那么恭喜您成功了,如果在某个环节碰到了问题,请耐心看下我的经验。


    遇到问题的解决方案:

    无厘头问题

    产生的原因一般是我们没有能更好的理解第三方应用需要的环境,或者配置的环境和自己的应用环境冲突。

    如果没有任何提示,或者不可理解的问题,请先google下,要相信您的问题也是大家的问题,或者在官方的FAQ提问。

    如果还是没有解决,您可以选择加入官方QQ群,在Q群提问,或者直接邮件给该应用的开发者请求帮助。



    有迹可循的问题

    当那些稀奇古怪的问题都解决以后,相信您也对第三方有了更深的理解,这时候需要您根据官方文档提示,仔细的把您的环境和第三方的环境融合在一起,这个过程中如果出错,要仔细阅读错误日志,或者查看控制台打印的返回值,结合官方文档的提示,快速定位解决。


    我的android项目想实现如下功能:服务器推送消息,缓存到客户端,当用户在状态栏点击消息的时候,打开自定义的Activity展示所有消息。

    提供云推送服务的有京东云推送百度云推送,我感觉百度更专业,使用者也很多,而且资料详细,于是选择了百度云推送。

    以后的步骤依次是:

    注册开发者账号——进入管理中心——注册自己的应用——下载官方提供的demo——下载官方提供的sdk——在自己的应用中引入sdk提供的jar包,在相应的地方加入自己的业务逻辑。

    因为不确定我遇到的问题和解决的办法是否具有代表性,就不一一列举出来了,如果读者也在集成百度云推送时遇到了问题可以留言,大家一起交流。


    展开全文
  • 打开第三方应用

    2017-06-12 10:03:34
    判断是否已安装对应应用 private boolean isInstall(Context context, String packageName) { final PackageManager packageManager = context.getPackageManager();//获取packagemanager List pinfo = pack

    判断是否已安装对应应用

        private boolean isInstall(Context context, String packageName) {
            final PackageManager packageManager = context.getPackageManager();//获取packagemanager
            List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);//获取所有已安装程序的包信息
            List<String> pName = new ArrayList<String>();//用于存储所有已安装程序的包名
            //从pinfo中将包名字逐一取出,压入pName list中
            if (pinfo != null) {
                for (int i = 0; i < pinfo.size(); i++) {
                    String pn = pinfo.get(i).packageName;
                    pName.add(pn);
                }
            }
            return pName.contains(packageName);//判断pName中是否有目标程序的包名,有TRUE,没有FALSE
        }
    
        private boolean isPkgInstalled(String pkgName) {
            PackageInfo packageInfo = null;
            try {
                packageInfo = this.getPackageManager().getPackageInfo(pkgName, 0);
            } catch (PackageManager.NameNotFoundException e) {
                packageInfo = null;
                e.printStackTrace();
            }
            if (packageInfo == null) {
                return false;
            } else {
                return true;
            }
        }


    打开或是下载


        public void open() {
            
            //已安装,打开程序,需传入参数包名:"com.tencent.mm"
            if (isInstall(this, "com.tengdi.mobilelaw.mobile.NJ")) {
                Intent intent = new Intent();
                ComponentName cn = new ComponentName("com.tengdi.mobilelaw.mobile.NJ",
                        "com.tengdi.mobilelaw.mobile.NJ.MainActivity");
                intent.setComponent(cn);
                startActivityForResult(intent, RESULT_OK);
    
    
            }
            //未安装,跳转至market下载该程序
            else {
                Uri uri = Uri.parse("market://details?id=com.tencent.mm");//id为包名
                // 直接从指定网址下载
                // Uri uri = Uri.parse("http://dldir1.qq.com/foxmail/weixin521android400.apk");
    
                Intent it = new Intent(Intent.ACTION_VIEW, uri);
                startActivity(it);
            }
        }


    展开全文
  • 访问第三方应用

    2016-07-12 15:05:53
    //打开第三方应用 - (IBAction)thirdPartyApplicationClick:(UIButton *)sender {  NSString *url=@"cmj://myparams";  [self openUrl:url]; } #pragma mark - 私有方法 -(void)openUrl:...


    //打开第三方应用

    - (IBAction)thirdPartyApplicationClick:(UIButton *)sender {

        NSString *url=@"cmj://myparams";

        [self openUrl:url];

    }

    #pragma mark - 私有方法

    -(void)openUrl:(NSString *)urlStr{

        //注意url中包含协议名称,iOS根据协议确定调用哪个应用,例如发送邮件是“sms://”其中“//”可以省略写成“sms:”(其他协议也是如此)

        NSURL *url=[NSURL URLWithString:urlStr];

        UIApplication *application=[UIApplication sharedApplication];

        if(![application canOpenURL:url]){

            NSLog(@"无法打开\"%@\",请确保此应用已经正确安装.",url);

            return;

        }

        [[UIApplication sharedApplication] openURL:url];

    }

    //就像调用系统应用一样,协议后面可以传递一些参数(例如上面传递的myparams),这样一来在应用中可以在AppDelegate-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation代理方法中接收参数并解析。

    -(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{

        NSString *str=[NSString stringWithFormat:@"url:%@,source application:%@,params:%@",url,sourceApplication,[url host]];

        NSLog(@"%@",str);

        return YES;//是否打开

    }

    展开全文
  • 审批通过之后再创建一个移动应用同样还是需要审批。通过之后就可以给这个应用添加微信授权登陆以及相应功能了。这里移动应用审批通过之后会给你两个参数,一个叫AppId,一个叫Secret。这两个参数在...

    http://www.cnblogs.com/linjunjie/p/6249989.html

    微信开放平台  和  微信公众平台  概念不同。

     

    1、首先需要注册微信开放平台,然后获取开发者认证。审批通过之后再创建一个移动应用同样还是需要审批。通过之后就可以给这个应用添加微信授权登陆以及相应功能了。这里移动应用审批通过之后会给你两个参数,一个叫AppId,一个叫Secret。这两个参数在后面用的到。

    第一步:获取AppID AppSecret(不做解释,自己去微信公众平台申请)

     

    第二步:生成扫描二维码,获取code
    https://open.weixin.qq.com/connect/qrconnect?appid=AppID&redirect_uri=http://www.baidu.com&response_type=code&scope=snsapi_login&state=2014#wechat_redirect
     

    第三步:通过code获取access_token
    https://api.weixin.qq.com/sns/oauth2/access_token?appid=AppID&secret=AppSecret&code=00294221aeb06261d5966&grant_type=authorization_code

    第四步:因接口频率有次数限制,如果需要,刷新access_token

    https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=AppID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN
     

        第五步:通过access_token和openid获取用户的基础信息,包括头像、昵称、性别、地区

    https://api.weixin.qq.com/sns/userinfo?access_token=bezXEiiBSKSxW0eoblIewFNHqAG-PyW9OqI_L81E4ZCi2cFpfoJTyQc0xKlPPCtqK1kLJfiRbVrpoOVLw7fjpqh52bn7C68SHa2HSgYsVPXZPvJvtayDa57-_7TeHYw&openid=o39YsbmuV_bIPGpj1MTe



    这是接口在线调试工具:http://mp.weixin.qq.com/debug/
    这是错误码说明文档:

    http://mp.weixin.qq.com/wiki/17/fa4e1434e57290788bde25603fa2fcbd.html 

    另外需要特别注意,如果开发者有在多个公众号,或在公众号、移动应用之间统一用户帐号的需求,需要前往微信开放平台(open.weixin.qq.com)绑定公众号后,才可利用UnionID机制来满足上述需求,文档:
    http://mp.weixin.qq.com/wiki/14/bb5031008f1494a59c6f71fa0f319c66.html

     

    微信网页第三方登录原理

     

    微信开放平台和公众平台的区别

    1.公众平台面向的时普通的用户,比如自媒体和媒体,企业官方微信公众账号运营人员使用,当然你所在的团队或者公司有实力去开发一些内容,也可以调用公众平台里面的接口,比如自定义菜单,自动回复,查询功能。目前大多数微信通过认证之后,都在做这个事情。

    mp.weixin.qq.com


    2.开放平台面向的开发者和第三方独立软件开发商。我觉得开发平台最大的开放就是微信登录。当年腾讯没有花大力气去做统一登录这个事情,导致目前各个网站都要弄一套登录机制。好在他们现在认清了局势。开发者或软件开发商,通过微信开放提供的平台和接口,可以开发适合企业的电子商务网站,扫描二维码进去一个游戏界面,然后去购买商品等。当然后续开放平台要开放支付接口,那么类似口袋通这种软件开发厂商,就可以为大型,中小企业提供微信小店这种服务和软件了。

    open.weixin.qq.com

     

    公众平台就是服务号订阅号的管理开发后台。

    开发平台说得通俗一点就是实现手机里边安装软件的内容一键分享朋友圈;

    下面的第三方登陆就是依托于开放平台(open.weixin.qq.com)的功能

     

    准备工作

    网站应用微信登录是基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统。

    在进行微信OAuth2.0授权登录接入之前,在微信开放平台注册开发者帐号,并拥有一个已审核通过的网站应用,并获得相应的AppID和AppSecret,申请微信登录且通过审核后,可开始接入流程。

    授权流程说明

    微信OAuth2.0授权登录让微信用户使用微信身份安全登录第三方应用或网站,在微信用户授权登录已接入微信OAuth2.0的第三方应用后,第三方可以获取到用户的接口调用凭证(access_token),通过access_token可以进行微信开放平台授权关系接口调用,从而可实现获取微信用户基本开放信息和帮助用户实现基础开放功能等。

    微信OAuth2.0授权登录目前支持authorization_code模式,适用于拥有server端的应用授权。该模式整体流程为:

      1. 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数;

      2. 通过code参数加上AppID和AppSecret等,通过API换取access_token;

      3. 通过access_token进行接口调用,获取用户基本数据资源或帮助用户实现基本操作。

    获取access_token时序图:

    第一步:请求CODE

    第三方使用网站应用授权登录前请注意已获取相应网页授权作用域(scope=snsapi_login),则可以通过在PC端打开以下链接:
    https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

    若提示“该链接无法访问”,请检查参数是否填写错误,如redirect_uri的域名与审核时填写的授权域名不一致或scope不为snsapi_login。

    参数说明

    参数 是否必须 说明
    appid 应用唯一标识
    redirect_uri 重定向地址,需要进行UrlEncode
    response_type 填code
    scope 应用授权作用域,拥有多个作用域用逗号(,)分隔,网页应用目前仅填写snsapi_login即可
    state 用于保持请求和回调的状态,授权请求后原样带回给第三方。该参数可用于防止csrf攻击(跨站请求伪造攻击),建议第三方带上该参数,可设置为简单的随机数加session进行校验

    返回说明

    用户允许授权后,将会重定向到redirect_uri的网址上,并且带上code和state参数

    redirect_uri?code=CODE&state=STATE

    若用户禁止授权,则重定向后不会带上code参数,仅会带上state参数

    redirect_uri?state=STATE

    请求示例

    登录一号店网站应用

    https://passport.yhd.com/wechat/login.do

    打开后,一号店会生成state参数,跳转到
    https://open.weixin.qq.com/connect/qrconnect?appid=wxbdc5610cc59c1631&redirect_uri=https%3A%2F%2Fpassport.yhd.com%2Fwechat%2Fcallback.do&response_type=code&scope=snsapi_login&state=3d6be0a4035d839573b04816624a415e#wechat_redirect

    微信用户使用微信扫描二维码并且确认登录后,PC端会跳转到

    https://passport.yhd.com/wechat/callback.do?code=CODE&state=3d6be0a4035d839573b04816624a415e

    为了满足网站更定制化的需求,我们还提供了第二种获取code的方式,支持网站将微信登录二维码内嵌到自己页面中,用户使用微信扫码授权后通过JS将code返回给网站。

    JS微信登录主要用途:网站希望用户在网站内就能完成登录,无需跳转到微信域下登录后再返回,提升微信登录的流畅性与成功率。 网站内嵌二维码微信登录JS实现办法:

    步骤1:在页面中先引入如下JS文件(支持https):

    <script src="http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script>

    步骤2:在需要使用微信登录的地方实例以下JS对象:

                              var obj = new WxLogin({

                                  id:"login_container", 

                                  appid: "", 

                                  scope: "", 

                                  redirect_uri: "",

                                  state: "",

                                  style: "",

                                  href: ""

                                });

    参数说明

    参数 是否必须 说明
    id 第三方页面显示二维码的容器id
    appid 应用唯一标识,在微信开放平台提交应用审核通过后获得
    scope 应用授权作用域,拥有多个作用域用逗号(,)分隔,网页应用目前仅填写snsapi_login即可
    redirect_uri 重定向地址,需要进行UrlEncode
    state 用于保持请求和回调的状态,授权请求后原样带回给第三方。该参数可用于防止csrf攻击(跨站请求伪造攻击),建议第三方带上该参数,可设置为简单的随机数加session进行校验
    style 提供"black"、"white"可选,默认为黑色文字描述。详见文档底部FAQ
    href 自定义样式链接,第三方可根据实际需求覆盖默认样式。详见文档底部FAQ

     

    第二步:通过code获取access_token

    通过code获取access_token

    https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

    参数说明

    参数 是否必须 说明
    appid 应用唯一标识,在微信开放平台提交应用审核通过后获得
    secret 应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
    code 填写第一步获取的code参数
    grant_type 填authorization_code

    返回说明

    正确的返回:


    "access_token":"ACCESS_TOKEN", 
    "expires_in":7200, 
    "refresh_token":"REFRESH_TOKEN",
    "openid":"OPENID", 
    "scope":"SCOPE",
    "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"}

     

    参数 说明
    access_token 接口调用凭证
    expires_in access_token接口调用凭证超时时间,单位(秒)
    refresh_token 用户刷新access_token
    openid 授权用户唯一标识
    scope 用户授权的作用域,使用逗号(,)分隔
     unionid

    只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。

    错误返回样例:

    {"errcode":40029,"errmsg":"invalid code"}

    刷新access_token有效期

    access_token是调用授权关系接口的调用凭证,由于access_token有效期(目前为2个小时)较短,当access_token超时后,可以使用refresh_token进行刷新,access_token刷新结果有两种:

    1. 1. 若access_token已超时,那么进行refresh_token会获取一个新的access_token,新的超时时间;

    2. 2. 若access_token未超时,那么进行refresh_token不会改变access_token,但超时时间会刷新,相当于续期access_token。

    refresh_token拥有较长的有效期(30天),当refresh_token失效的后,需要用户重新授权。

    请求方法

    获取第一步的code后,请求以下链接进行refresh_token:

    https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN

    参数说明

    参数 是否必须 说明
    appid 应用唯一标识
    grant_type 填refresh_token
    refresh_token 填写通过access_token获取到的refresh_token参数

    返回说明

    正确的返回:


    "access_token":"ACCESS_TOKEN", 
    "expires_in":7200, 
    "refresh_token":"REFRESH_TOKEN", 
    "openid":"OPENID", 
    "scope":"SCOPE" 
    }

    参数 说明
    access_token 接口调用凭证
    expires_in access_token接口调用凭证超时时间,单位(秒)
    refresh_token 用户刷新access_token
    openid 授权用户唯一标识
    scope 用户授权的作用域,使用逗号(,)分隔

     

    错误返回样例:

    {"errcode":40030,"errmsg":"invalid refresh_token"}

    注意:

    1、Appsecret 是应用接口使用密钥,泄漏后将可能导致应用数据泄漏、应用的用户数据泄漏等高风险后果;存储在客户端,极有可能被恶意窃取(如反编译获取Appsecret);

    2、access_token 为用户授权第三方应用发起接口调用的凭证(相当于用户登录态),存储在客户端,可能出现恶意获取access_token 后导致的用户数据泄漏、用户微信相关接口功能被恶意发起等行为;

    3、refresh_token 为用户授权第三方应用的长效凭证,仅用于刷新access_token,但泄漏后相当于access_token 泄漏,风险同上。

     

    建议将secret、用户数据(如access_token)放在App云端服务器,由云端中转接口调用请求。

     

    第三步:通过access_token调用接口

    获取access_token后,进行接口调用,有以下前提:

    1. 1. access_token有效且未超时;

    2. 2. 微信用户已授权给第三方应用帐号相应接口作用域(scope)。

     

    对于接口作用域(scope),能调用的接口有以下:

    授权作用域(scope) 接口 接口说明
    snsapi_base /sns/oauth2/access_token 通过code换取access_token、refresh_token和已授权scope
    /sns/oauth2/refresh_token 刷新或续期access_token使用
    /sns/auth 检查access_token有效性
    snsapi_userinfo /sns/userinfo 获取用户个人信息

    其中snsapi_base属于基础接口,若应用已拥有其它scope权限,则默认拥有snsapi_base的权限。使用snsapi_base可以让移动端网页授权绕过跳转授权登录页请求用户授权的动作,直接跳转第三方网页带上授权临时票据(code),但会使得用户已授权作用域(scope)仅为snsapi_base,从而导致无法获取到需要用户授权才允许获得的数据和基础功能。

    接口调用方法可查阅《微信授权关系接口调用指南》

    F.A.Q

    1. 什么是授权临时票据(code)?

    答:第三方通过code进行获取access_token的时候需要用到,code的超时时间为10分钟,一个code只能成功换取一次access_token即失效。code的临时性和一次保障了微信授权登录的安全性。第三方可通过使用https和state参数,进一步加强自身授权登录的安全性。

     

    2. 什么是授权作用域(scope)?

    答:授权作用域(scope)代表用户授权给第三方的接口权限,第三方应用需要向微信开放平台申请使用相应scope的权限后,使用文档所述方式让用户进行授权,经过用户授权,获取到相应access_token后方可对接口进行调用。

    3. 网站内嵌二维码微信登录JS代码中style字段作用?

    答:第三方页面颜色风格可能为浅色调或者深色调,若第三方页面为浅色背景,style字段应提供"black"值(或者不提供,black为默认值),则对应的微信登录文字样式为黑色。相关效果如下:

    若提供"white"值,则对应的文字描述将显示为白色,适合深色背景。相关效果如下:

    4.网站内嵌二维码微信登录JS代码中href字段作用?

    答:如果第三方觉得微信团队提供的默认样式与自己的页面样式不匹配,可以自己提供样式文件来覆盖默认样式。举个例子,如第三方觉得默认二维码过大,可以提供相关css样式文件,并把链接地址填入href字段

    .impowerBox .qrcode {width: 200px;}
    .impowerBox .title {display: none;}
    .impowerBox .info {width: 200px;}
    .status_icon {display:none}
    .impowerBox .status {text-align: center;} 

     

    相关效果如下:

    通过code获取access_token

    接口说明

    通过code获取access_token的接口。

    请求说明

    http请求方式: GET

    https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

    参数说明

    参数 是否必须 说明
    appid 应用唯一标识,在微信开放平台提交应用审核通过后获得
    secret 应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
    code 填写第一步获取的code参数
    grant_type 填authorization_code

    返回说明

    正确的返回:


    "access_token":"ACCESS_TOKEN", 
    "expires_in":7200, 
    "refresh_token":"REFRESH_TOKEN",
    "openid":"OPENID", 
    "scope":"SCOPE" 
    }

    参数 说明
    access_token 接口调用凭证
    expires_in access_token接口调用凭证超时时间,单位(秒)
    refresh_token 用户刷新access_token
    openid 授权用户唯一标识
    scope 用户授权的作用域,使用逗号(,)分隔

    错误返回样例:

    {
    "errcode":40029,"errmsg":"invalid code"
    }

    刷新或续期access_token使用

    接口说明

    access_token是调用授权关系接口的调用凭证,由于access_token有效期(目前为2个小时)较短,当access_token超时后,可以使用refresh_token进行刷新,access_token刷新结果有两种:

    1. 1. 若access_token已超时,那么进行refresh_token会获取一个新的access_token,新的超时时间;

    2. 2.若access_token未超时,那么进行refresh_token不会改变access_token,但超时时间会刷新,相当于续期access_token。

    refresh_token拥有较长的有效期(30天),当refresh_token失效的后,需要用户重新授权。

    请求方法

    使用/sns/oauth2/access_token接口获取到的refresh_token进行以下接口调用:

    http请求方式: GET

    https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN

    参数说明

    参数 是否必须 说明
    appid 应用唯一标识
    grant_type 填refresh_token
    refresh_token 填写通过access_token获取到的refresh_token参数

    返回说明

    正确的返回:


    "access_token":"ACCESS_TOKEN", 
    "expires_in":7200, 
    "refresh_token":"REFRESH_TOKEN", 
    "openid":"OPENID", 
    "scope":"SCOPE" 
    }

    参数 说明
    access_token 接口调用凭证
    expires_in access_token接口调用凭证超时时间,单位(秒)
    refresh_token 用户刷新access_token
    openid 授权用户唯一标识
    scope 用户授权的作用域,使用逗号(,)分隔

    错误返回样例:

    {
    "errcode":40030,"errmsg":"invalid refresh_token"
    }

    接口说明

    检验授权凭证(access_token)是否有效

    请求说明

    http请求方式: GET

    https://api.weixin.qq.com/sns/auth?access_token=ACCESS_TOKEN&openid=OPENID

    参数说明

    参数 是否必须 说明
    access_token 调用接口凭证
    openid 普通用户标识,对该公众帐号唯一

    返回说明

    正确的Json返回结果:


    "errcode":0,"errmsg":"ok"
    }

    错误的Json返回示例:


    "errcode":40003,"errmsg":"invalid openid"
    }

    获取用户个人信息(UnionID机制)

    接口说明

    此接口用于获取用户个人信息。开发者可通过OpenID来获取用户基本信息。特别需要注意的是,如果开发者拥有多个移动应用、网站应用和公众帐号,

    可通过获取用户基本信息中的unionid来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号,用户的unionid是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。

    请求说明

    http请求方式: GET

    https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID

    参数说明

    参数 是否必须 说明
    access_token 调用凭证
    openid 普通用户的标识,对当前开发者帐号唯一

    返回说明

    正确的Json返回结果:


    "openid":"OPENID",
    "nickname":"NICKNAME",
    "sex":1,
    "province":"PROVINCE",
    "city":"CITY",
    "country":"COUNTRY",
    "headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0",
    "privilege":[
    "PRIVILEGE1", 
    "PRIVILEGE2"
    ],
    "unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"

    }

    参数 说明
    openid 普通用户的标识,对当前开发者帐号唯一
    nickname 普通用户昵称
    sex 普通用户性别,1为男性,2为女性
    province 普通用户个人资料填写的省份
    city 普通用户个人资料填写的城市
    country 国家,如中国为CN
    headimgurl 用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空
    privilege 用户特权信息,json数组,如微信沃卡用户为(chinaunicom)
    unionid 用户统一标识。针对一个微信开放平台帐号下的应用,同一用户的unionid是唯一的。

    错误的Json返回示例:


    "errcode":40003,"errmsg":"invalid openid"
    }

    调用频率限制

    接口名 频率限制
    通过code换取access_token 1万/分钟
    刷新access_token 5万/分钟
    获取用户基本信息 5万/分钟
    展开全文
  • hello小伙伴们大家好,懒癌患者菌菌又来了,好久没有给大家推荐ios应用了 , 菌菌在网上各种扒帖子的时候, 发现了一款iOS第三方应用商城,我们可能都知道,在iOS的App store里有很大的限制导致很多安卓有的应用...
  • 企业微信---第三方应用开发 笔记

    万次阅读 热门讨论 2020-07-02 10:59:45
    要成为第三方供应商,先按开发文档步骤操作。服务商注册应用 1,注册成功后,配置开发信息:通用开发参数 这里的CorpID是第三方供应商供应商的企业ID,不同于企业微信的CorpID。 ProviderSecret:还未用到,之后再...
  • 如题,我现在要在自己的app1中跳转到另一个app2的聊天界面。...// 应用过滤条件 intent.setData(Uri.parse("lync://")); context.startActivity(intent);// 现在只能跳转到APP2的入口界面
  • 前言:如何快速接入第三方登录?无需第三方审核认证授权,一次性接入多个平台的解决方案, 此处实现使用SpringBoot+vue 实现此效果 1.申请接入应用 http://open.51094.com/ 按需选择接入的类型 填写应用信息 完成...
  • 1. 【我的电脑】右键,点击【属性】,打开系统属性,选择左上角【控制... 单击【网络和Internet】,3. 单击【Internet选项】4. 选择【连接】右下角的【局域网设置】5. 取消所有勾选,单击【确定】应用重新设置即可。...
  • android 启动第三方应用的几种方法(整理)
  • 由于需要测试微信登录功能,在微信授权登录成功后需要解除绑定功能。一直没有找到对应的方法。 取消已授权的第三方应用APP办法:如何在微信中取消已授权的第三方应用APP ...
  • 第三方账号登录功能接入完全流程

    万次阅读 多人点赞 2019-04-11 14:51:14
    第三方账号虽然是一个小的功能点,但是在设计过程中,我们依然要结合自身产品的特点来确定产品方案和产品流程。 本人在一家网络游戏公司工作,负责公司的基础平台性的产品。主要有用户中心、充值/支付平台、账号...
  • iOS应用可以使用 URL Schemes 进行应用间的...所以这就出现了微信或QQ等知名应用不能打开第三方应用的问题,不能打开是因为微信和QQ使用的是自己研发的QQ浏览器,他不遵循URL Schemes这个协议。 实例演示:(祝第三方
  • Android使用第三方模拟器开发调试app

    万次阅读 2016-11-28 18:43:58
    厌倦了AVD的各种bug和启动过慢的毛病,现在开发软件除了真机调试外又多了一种选择,使用第三方的模拟器,目前常见的第三方Android模拟器有BlueStacks,靠谱助手等, 本文使用bluestacks作为示例: 首先到官网下载...
  • (adb shell am start -n 包名/包名+类名) adb shell am start -n ... 查看activity名: (1)启动要查看的程序;...(2)命令行输入:adb shell dumpsys window w |finds
  • Android 第三方应用接入微信平台(1)

    万次阅读 多人点赞 2012-11-22 20:37:53
    关键字:微信开放平台 Android第三方应用接入微信 微信平台开放后倒是挺火的,许多第三方应用都想试下接入微信这个平台, 毕竟可以利用微信建立起来的关系链来拓展自己的应用还是挺不错的,可 以节约很多在...
  • 微信打开第三方app

    千次阅读 2016-01-22 14:22:53
    1. 第三方app必须在应用宝发布,且开通‘微下载’服务 2.把微下载的链接地址分享到微信朋友圈,或者微信好友 3.点击该链接,跳转到应用宝下载页面,如果手机客户端没有安装该app,可以在页面点击下载按钮下载;如...
  • 关于第三方登录,你应该知道的

    万次阅读 2017-02-07 10:04:04
    随着国内及国外巨头们的平台开放战略以及移动互联网的发展,第三方登录已经不是一个陌生的产品设计概念了。那么,究竟该如何认识第三方登录,又该如何正确地设计的第三方登录?这些问题其实细节还是蛮多的,所以,...
  • 出现如题的bug主要是由于可信域名的原因引起的, 第三方应用的可信域名需要与OAuth配置的可信域名一致。 因此需要设置第三方应用的可信域名。 参考: 设置应用信息(第三方授权)
  • Android开发怎么做第三方登录?

    万次阅读 2013-08-23 09:53:11
    一般大家经常讲的第三方登录只是一个概念,就是获得第三方平台的授权,而不是讲应用使用这种授权来注册用户完成登录的流程。终于找到一个完整的答案,对于我这种使用第三方平台的新手来说,这个概念是比较清晰的。 ...
1 2 3 4 5 ... 20
收藏数 789,394
精华内容 315,757
关键字:

第三方应用