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

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

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


    第一步:选择

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



    第二步:了解

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



    第三步: 下载demo

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

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

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



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

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

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


    最后: 关注版本变更信息

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


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


    遇到问题的解决方案:

    无厘头问题

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

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

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



    有迹可循的问题

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


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

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

    以后的步骤依次是:

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

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


    展开全文
  • 有时候在项目中会遇到这么个需求:在自己的app中... * pkg:第三方应用的包名 * cls:第三方应用的第一个Activity */ ComponentName comName= new ComponentName(pkg, cls); Intent intent = new Intent(); inten...

    有时候在项目中会遇到这么个需求:在自己的app中打开本地第三方app,比如微信、QQ等等。实现如下:

    /**
      * pkg:第三方应用的包名
      * cls:第三方应用的第一个Activity
     */
        ComponentName comName= new ComponentName(pkg, cls);
        Intent intent = new Intent();
        intent.setComponent(comName);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);

    其中ComponentName类主要是用来帮助打开另一个应用的Activity或者Service等,通过Intent.setComponent方法实现。

    那么该如何获取手机里app的包名和启动页呢?这里提供两种方式:

    (1)手机安装一个叫当前Activity的app,这个app能够获取到当前正在前台运行的app的包名以及Activiy类名,然后再悬浮窗中展示出来,使用非常方便

    (2)使用如下代码:

    Intent intent = new Intent(Intent.ACTION_MAIN, null);
    intent.addCategory(Intent.CATEGORY_LAUNCHER);
    PackageManager packageManager = this.getPackageManager();
    List<ResolveInfo> appsInfo = packageManager.queryIntentActivities(intent, 0);
    Collections.sort(appsInfo, new ResolveInfo.DisplayNameComparator(packageManager));
    for(ResolveInfo info : appsInfo){
        String pkg = info.activityInfo.packageName;
        String cls = info.activityInfo.name;
        Log.i("app_info","pkg——" +pkg +"cls——" + cls );
    }
    该方法打印出手机中所有的app的包名和对应的activity,根据情况找出来就行了



    展开全文
  • 1、在flutter里面打开第三方应用可以借助插件url_launcher 这个插件是flutter团队为我们提供的,这个插件是用于在flutter里面打开第三方app的 2、 添加依赖,然后点击 Packages get进行安装 3、 引入头文件...

    1、在flutter里面打开第三方应用可以借助插件url_launcher

    这个插件是flutter团队为我们提供的,这个插件是用于在flutter里面打开第三方app的

    2、

    添加依赖,然后点击 Packages get进行安装

    3、

    引入头文件

    4、

    打开浏览器

    5、运行结果:

    6、

    打开第三方应用

    在打开第三方应用的时候,首先要知道该app的schema或者它的url

     

    添加打开地图的方法:

    7、

    调用打开地图的方法

    8、运行结果:

     

    9、

    代码:

    import 'package:flutter/material.dart';
    import 'package:flutter_color_plugin/flutter_color_plugin.dart';
    import 'package:url_launcher/url_launcher.dart';
    void main() => runApp(LaunchPage());
    
    //如何打开第三方应用?
    class LaunchPage extends StatefulWidget {
      @override
      _LaunchPageState createState() => _LaunchPageState();
    }
    
    class _LaunchPageState extends State<LaunchPage> {
      
      _launchURL() async {
        const url = 'https://flutter.io';
        if (await canLaunch(url)) {
          await launch(url);
        } else {
          throw 'Could not launch $url';
        }
      }
    
      _openMap() async{
        //Android
        const url= 'geo:52.32,4.917';//App提供者提供的  schema
        if(await canLaunch(url)){
          await launch(url);
        }else{
          //iOS
          const url='http://maps.apple.com/?ll=52.32,4.917';
          if(await canLaunch(url)){
            await launch(url);
          }else{
            throw 'Could not launch $url';
          }
        }
      }
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: Text('如何打开第三方应用?'),
            leading:GestureDetector(
              onTap: (){
                Navigator.pop(context);
              },
              child: Icon(Icons.arrow_back),
            )
          ),
          body: Center(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                RaisedButton(
                  onPressed: ()=>_launchURL(),
                  child: Text('打开浏览器'),
                ),
                RaisedButton(
                  onPressed: ()=>_openMap(),
                  child: Text('打开地图'),
                )
              ],
            ),
          ),
    
        );
    
    
      }
    }
    

     

    注:

    出现的异常:

    1、Unhandled Exception: MissingPluginException(No implementation found for method canLaunch on channel plugins.flutter.io/url_launcher)

    解决办法:直接重启Android  Studio,或者先停止项目,再重新运行

     

    展开全文
  • 审批通过之后再创建一个移动应用同样还是需要审批。通过之后就可以给这个应用添加微信授权登陆以及相应功能了。这里移动应用审批通过之后会给你两个参数,一个叫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万/分钟
    展开全文
  • 最近在搞企业微信的东西,刚开始对这个的确没有任何的概念,属于两眼...首先,要明确两个概念,就是微信和企业微信不是一个东西(虽然有些信息互通)、企业微信应用和服务商的第三方应用也不是一个东西(虽然也有...
  • iOS应用可以使用 URL Schemes 进行应用间的...所以这就出现了微信或QQ等知名应用不能打开第三方应用的问题,不能打开是因为微信和QQ使用的是自己研发的QQ浏览器,他不遵循URL Schemes这个协议。 实例演示:(祝第三方
  • 需求场景: 在自己开发的应用程序里,有个跳转到其他应用的按钮,比如分享到...need第三方应用的包名,以及下载链接。2、如何判断本机是否已经安装了该第三方应用? 首先得到该程序的包名; 别人的应用程序我怎么知
  • 安装macOS Sierra后,会发现系统偏好设置的“安全性与隐私”中,“任何来源”选项已经被去除了,一些第三方应用会无法运行。提供一个简单找回“任何来源”选项的方法。 在 OS X 安装软件打不开提示“已损坏”或者...
  • 个人总结的监听第三方应用启动的方法有以下几种: 1.Root状态下监听ActivityManager的log 2.参考程序锁的实现,监听后台运行的进程 3.深入framework,通过反射等方式注入hook 第一种方式监听应用的启动,restart都...
  • 此次记录了企业授权安装第三方应用(二维码篇) 如果事先没开发过企业微信第三方应用的,先去入门创建一个第三方小程序,具体细节本文中就不提了。 正文: 官方文档:...
  • 往往我们需要对手机装了哪些第三方应用,那么第三方应用列表怎么获取呢? 如下: private List getThirdAppList(Context context) { PackageManager packageManager = context.getPackageManager(); List ...
  • 目前市场上有很多安全软件,它们拦截第三方应用广告的方式都不一样,比如说有 以so 注入方式来拦截弹出广告。 现在我们来看下这种方式的详细情况:要做到拦截,首先我们得知道广告是怎么出来的,原来第三方应用大...
  •  企业微信第三方应用与企业微信自建应用也不相同,一定要区分! !! 本地测试完成,没问题了,直接提交上线,就OK啦!!!1.官网地址:https://work.weixin.qq.com/,首先(注册/)登陆,然后点击右上角,服务商...
  • 最近项目中需要将开发中的应用继承到Android系统设备中,使得设备在出版本的时候Android系统会自带...1. 将开发的第三方应用比如应用名为 VTest,项目结构如下图所示: 将项目移到Android系统源码:workspace_A
  • 首先说下这个功能, 应该都有接触过。...就是调用URL来实现第三方应用的开启。首先,被打开的应用需要提供这个功能, 也就是,它需要注册一个 URL Schemes,供第三方使用。如果你想你的应用被调用, 你可以这
  • Android监听进入和退出第三方应用
  • [转]Android中WebView,打开第三方应用的问题 可以通过网页打开第三方应用,这个iOS和Android都可以做到,通过自定义的schema。说这个的网上有一大堆,这里就不赘述了。 比如,乐视手机网站,有app专享...
  • WD My Cloud Gen2 安装第三方应用 当今时代,网络储存已经不在安全了,转而开始流行个人的云储存,就是将所有数据存在自己的设备里面,然后通过互联网,在任何有网的环境下都可以存取文件数据。My Cloud便是一...
  • iOS 打开第三方应用

    2017-03-10 22:53:00
    打开第三方应用
  • 因为,用户手机中的APP无非来自两种:一种是通过水货商 刷在ROM里,另一种则是从应用市场下载,包括谷歌官方应用市场和国内第三方应用市场。那么,上传APP到安卓第三方应用市场需要哪些步骤呢?且听笔者一 一道来。 ...
1 2 3 4 5 ... 20
收藏数 771,235
精华内容 308,494
关键字:

第三方应用