ShareSDK 企业微信

news2024/9/23 16:53:26

本篇文档主要讲解如何使用企业微信并进行分享和授权。

创建应用

  1. 登录企业微信并通过企业认证。
  2. 选择应用管理 > 应用 >创建应用。
  3. 编辑应用信息。
  4. 配置授权登录信息

以下为创建过程示例,图中信息仅为示例,创建时请按照真实信息填写,否则无法正常使用。

image.png

image.png

image.png

创建应用之后会生成应用密匙等信息,然后进行 企业微信授权登录 设置

image.png

image.png

根据需求,可以选择配置 iOS 和 Android 端对应信息

image.png

iOS端配置信息如下

image.png

image.png

Android端配置信息如下

image.png

image.png

完成以上内容填写后,企业微信平台应用创建已经完成,可正常使用。

注意:企业微信在当前企业下创建“企业应用”,手机客户端应用通过”企业微信app“进行授权/分享时,调起的“企业微信app”必须处于相对应的企业,否则分享或授权会由于无权限导致失败 (如何转到自己的企业下:我-设置-切换企业或者消息-其他企业 都能切换企业)

集成使用

配置信息获取

客户端在使用企业微信平台之前,需要先获取企业微信为应用分发的AgentId、Secret、schema、企业ID

image.png

image.png

image.png

image.png

Android

SDK集成

在集成企业微信相关能力之前,请先按照ShareSDK集成指南完成ShareSDK的集成。

在对应gradle文件中,添加如下Wework块代码,其中appKey的值对应企业微信平台中的企业ID,appSecret对应企业微信平台中的Secret,agentId对应企业微信平台中的AgentId,schema对应企业微信平台中的schema

ShareSDK {
    devInfo {
        Wework {
            appKey "xxxxxxxxxxxxxx"
            appSecret "xxxxxxxxxxxxxxxxxxxx"
            agentId "xxxxxxxxxx"
            schema "xxxxxxxxxxxxxxxxxxxxxxx"
            enable true
        }
    }
}

分享示例

以下代码示例分享链接至企业微信好友

Platform platform = ShareSDK.getPlatform(Wework.NAME);
Platform.ShareParams shareParams = new  Platform.ShareParams();
shareParams.setText("Wework分享内容");
shareParams.setTitle("Wework分享标题");
shareParams.setImageUrl("https://download.sdk.mob.com/web/images/2019/07/30/14/1564468183056/750_750_65.12.png");
shareParams.setShareType(Platform.SHARE_WEBPAGE);
shareParams.setUrl("https://www.mob.com/");
// 设置分享事件回调(注:回调放在不能保证在主线程调用,不可以在里面直接处理UI操作)
platform.setPlatformActionListener(new PlatformActionListener() {
    @Override
    public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {
        //分享成功
    }
    @Override
    public void onError(Platform platform, int i, Throwable throwable) {
        //分享失败
    }
    @Override
    public void onCancel(Platform platform, int i) {
        //分享取消
    }
});
platform.share(shareParams);

效果图

授权示例

Platform wework = ShareSDK.getPlatform(Wework.NAME);
wework.setPlatformActionListener(new PlatformActionListener() {
    @Override
    public void onComplete(Platform platform, int i, final HashMap<String, Object>      hashMap) {
        Log.d("ShareSDK", platform.getDb().exportData());
    }
    @Override
    public void onError(Platform platform, int i, Throwable throwable) {
    }
    @Override
    public void onCancel(Platform platform, int i) {
    }
});
wework.SSOSetting(false);
wework.showUser(null);
返回信息示例

在ShareSDK成功回调中调用 platform.getDb().exportData(),将返回以下格式信息。

{
    "expiresIn": 7200,
    "userID": "xxxxxxxxxxxxxxxxxxxxxxxxxx",
    "expiresTime": 1721186368277,
    "token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

iOS

SDK集成

在集成企业微信相关能力之前,请先按照ShareSDK集成指南完成ShareSDK的集成。

添加白名单

(1)在项目的info.plist中添加Queried URL Schemes,类型为Array

(2)然后添加一个需要支持的项目,类型为字符串类型,企业微信需要添加的白名单为:wxwork , wxworkrdm

image.png

配置URL Scheme

打开项目的Info选项,然后选择URL Types,添加对应平台的URL Scheme配置,企业微信需要添加的URL SCheme为:企业微信初始化中的setupWeWorkBySchema

image.png

初始化平台

在使用企业微信能力之前,需要先对企业微信进行初始化,其中setupWeWorkBySchema的值对应企业微信中的schema,appKey对应企业微信中的企业ID,agentId对应企业微信中的AgentId,appSecret对应企业微信中的Secret

[ShareSDK registPlatforms:^(SSDKRegister *platformsRegister) {
     [platformsRegister setupWeWorkBySchema:@"XXXXXXXXXXXX" appKey:@"XXXXXX" agentId:@"XXXXXXX" appSecret:@"XXXXXXXXXXX"];
}

分享示例

以下代码示例分享网络连接至企业微信好友

#import <ShareSDK/ShareSDK.h> &nbsp; 
NSMutableDictionary * shareParams = [NSMutableDictionary dictionary];
[shareParams SSDKSetupShareParamsByText:@"Jshuoh "
                                 images:[[NSBundle mainBundle] pathForResource:@"Icon@2x" ofType:@"png"]
                                    url:[NSURL URLWithString:@"http://www.mob.com"]
                                  title:@"I'm Not The"
                                   type:SSDKContentTypeWebPage];
[ShareSDK share:SSDKPlatformTypeWework parameters:shareParams onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) {
        if (state == SSDKResponseStateSuccess)
        {
              NSLog(@"分享成功");
        }
        if (state == SSDKResponseStateFail)
        {
              NSLog(@"失败----%@",error.description);
        }
        if (state == SSDKResponseStateCancel)
        {
              NSLog(@"取消");
        }
}];

效果图

image-20240717101627510

授权示例

#import <ShareSDK/ShareSDK.h>
[ShareSDK authorize:SSDKPlatformTypeWework
              settings:nil
        onStateChanged:^(SSDKResponseState state, SSDKUser *user, NSError *error) {
          if (state == SSDKResponseStateSuccess)
          {
               NSLog(@"rawData---%@",user.rawData);//用户信息打印
               NSLog(@"credential---%@",[user.credential rawData]);//授权信息打印
          }
          if (state == SSDKResponseStateFail)
          {
               NSLog(@"%@",error.description);
          }
          if (state == SSDKResponseStateCancel)
          {
               NSLog(@"取消");;
          }
}];

返回信息示例

在authorize成功回调中调用user.rawData和[user.credential rawData]打印,将返回以下信息

//用户信息打印
rawData---{
    DeviceId = "";
    UserId = LiuXXXXX;
    errcode = 0;
    errmsg = ok;
}
//授权信息打印
credential---{
    "access_token" = "vwuRAmOtA3tNWp6iOh4FoAYuPFU5inACvFDKs4QoEZclZYxAArhs6YgPVn-XXXXXXXXXXXXXXX_RYvcr_kmqrr3zwt5aDTu-ezftQC6CWNmtMa62dmzqR6G_7HyfRzGfFjzFo5vW7p7d-TU8t33sQU3sIve-LXjemFroy1iLApWMKDtueDbD-qZ3POgpBA7RV7uTw-m-2P09diVLEksDA";
    errcode = 0;
    errmsg = ok;
    "expires_in" = 7200;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2074145.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java 入门指南:异常处理(Exception Handling)

异常处理是一种处理运行时错误的机制&#xff0c;是处理运行时错误的有效方法之一&#xff0c;这样可以保留应用程序的常规流程。 Java为异常设计了一套 异常处理机制&#xff08;Exception Handling&#xff09;&#xff0c;当程序运行过程中发生一些异常情况时&#xff0c;程…

联华证券-美联储降息补贴:额外补贴,美元短期走势或保持稳定

市场进一步确信美联储9月的加息举措&#xff0c;即便对加息幅度的预测并不一致。 当地时间8月23日&#xff0c;美联储主席鲍威尔在Jackson Hole年度会议中发出迄今为止最强烈的降息信号&#xff1a;为避免国内劳动力市场进一步疲弱&#xff0c;美联储打算采取行动&#xff0c;…

Spring(面试篇)

目录 什么是Spring&#xff1f; Spring的两大核心概念 Spring框架的设计目标&#xff0c;设计理念&#xff0c;和核心是什么 Spring的优缺点是什么&#xff1f; Spring由哪些应用场景 Spring由哪些模块组成&#xff1f; Spring框架中都用到了那些设计模式&#xff1f; …

Battery Cycle Life Prediction From Initial Operation Data

这个例子展示了如何使用线性回归(一种监督机器学习算法)预测快速充电锂离子电池的剩余循环寿命。使用基于物理的建模方法预测锂离子电池的循环寿命是非常复杂的&#xff0c;因为不同的操作条件和显著的设备可变性&#xff0c;即使是来自同一制造商的电池。对于这种情况&#xf…

2023高教社杯数学建模国赛C题详细代码 文章 数据教学 保姆级手把手包含文档格式 2024数模国赛教学:蔬菜类商品的自动定价和补货决策

本系列专栏将包括两大块内容 第一块赛前真题和模型教学,包括至少8次真题实战教学,每期教学专栏的最底部会提供完整的资料百度网盘包括:真题、数据、可复现代码以及文章. 第二块包括赛中思路、代码、文章的参考助攻, 会提供2024年高教社国赛各个赛题的全套参考内容(一般36h内更新…

JavaWeb学习——事务管理、AOP学习

目录 一、事务管理 1、事务回顾 2、事务进阶 a、rollbackFor属性 b、propagation属性 二、AOP学习 1、基础了解 2、AOP进阶 一、事务管理 1、事务回顾 事务的概念&#xff1a;事务必须服从ACID原则。ACID指的是原子性&#xff08;atomicity&#xff09;、一致性&#xf…

Linux网络编程:多路转接--poll/epoll

1. poll poll也是一种多路转接的方案&#xff0c;解决了select的fd有上限和每次调用都要重新设置关心的fd的问题。 2. poll接口 #include int poll(struct pollfd* fds, nfds_t nfds, int timeout); 参数&#xff1a;fds&#xff1a;可以看成是动态数组/数组/结构体数组 nfds&…

【生日视频制作】一群美女挥手拉蓝横幅条幅AE模板修改文字软件生成器教程特效素材【AE模板】

一群美女挥手拉蓝条横幅生日视频制作教程AE模板修改文字生成器 怎么如何做的【生日视频制作】一群美女挥手拉蓝横幅条幅AE模板修改文字软件生成器教程特效素材【AE模板】 生日视频制作步骤&#xff1a; 安装AE软件下载AE模板把AE模板导入AE软件修改图片或文字渲染出视频

Ai+若依(系统工具-->表单构建):【02篇】

系统工具 表单构建 介绍 允许用户通过拖放等可视化操作创建表单,比如用来收集数据的表格或调查问卷。 可以自定义表单的各个部分,比如添加不同的输入项和设置验证规则,无需编写代码。 提供了导出数据、导入数据、分享表单和设置权限的功能,方便数据管理和共享。 案例 通…

RoboCopy文件快速拷贝工具

RoboCopy是Windows平台(从Windows Vista/Window 7开始)自带的文件快速拷贝工具,它是xcopy命令工具的升级版,解除了xcopy拷贝文件时4GB的容量限制,同时,又支持多线程、给文件夹制作镜像、复制指定日期的文件等功能。 1 全部拷贝 假设从alice文件夹,全部拷贝到bob文件夹,则…

leetcode 80 删除有序数组中的重复项 II

正文 仍旧使用双指针&#xff0c; 思想与 leetcode 26 删除有序数组中的重复项 一致。只是此时因为要求保留重复元素两次&#xff0c;我们的左侧指针可以从第二个数据开始&#xff0c;且右侧指针需要和两个元素的值进行判断。 class Solution:def removeDuplicates(self, nums…

WPF—资源的使用

资源的使用 资源是可以在应用中的不同位置重复使用的对象。 资源的示例包括画笔和样式。 <Window.Resources><!--定义颜色资源--><SolidColorBrush x:Key"MyBrush" Color"#05E0E9"/><!--定义样式资源--><Style TargetType&quo…

前端技术(五)—— 使用Node.js编写简单的项目

一、 初始化项目 1. 创建项目 ⑴ 新建 api_kjzt_server 文件夹作为项目根目录&#xff0c;并初始化包管理配置文件 并在项目根目录中运行如下的命令&#xff0c;初始化包管理配置文件&#xff1a; npm init -y⑵ 运行如下的命令&#xff0c;安装特定版本的 express npm i e…

企业级WEB应用服务器TOMCAT详解

一、什么是TOMCAT 1.1来源 Tomcat是Apache 软件基金会&#xff08;Apache Software Foundation&#xff09;的Jakarta 项目中的一个核心项目&#xff0c;由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持&#xff0c;最新的Servlet 和JSP 规范总是能…

A Neural Probabilistic Language Model

摘要 统计语言建模的一个目标是学习单词序列的联合概率函数。由于维度的诅咒&#xff0c;这在本质上是困难的:我们建议用它自己的武器来对抗它。在提出的方法中&#xff0c;人们同时学习(1)每个单词的分布式表示&#xff08;词向量&#xff09;(即单词之间的相似性)以及(2)表示…

TypeScript 类型注解(二)

一、TypeScript类型约束--对象 对象其实和数组类似&#xff0c;不是限制对象本身的类型&#xff0c;而是对对象属性类型进行限制 结构简化&#xff1a; 对对象做类型限制的好处&#xff1a; 大家都学习过一段时间编程了&#xff0c;会发现咱们经常操作的类型就是对象&#xf…

使用miniconda构建数据科学环境

背景 数据科学中&#xff0c;不同时期项目代码往往是由不同的版本的python和第三方数据科学包构建&#xff0c;这些不同版本往往会存在兼容性问题&#xff0c;要运行这些代码&#xff0c;需要管理不同的版本的安装包。Conda是一个开源的包管理和环境管理系统&#xff0c;环境管…

Linux | 编译和使用自定义动静态库的全面解析

新竹高于旧竹枝&#xff0c;全凭老干为扶持。 - 《新竹》(郑燮) 2024.8.25 目录 1、静态库和动态库简介 静态库&#xff08;.a&#xff09;&#xff1a; 动态库&#xff08;.so&#xff09;&#xff1a; 动态库和静态库的比较&#xff1a; 2、静态库的生成和使用&#xff…

GCB | 首次揭示!气候变化对常绿和落叶植物物候差异化影响的机制

气候变化引起的植物物候改变已对全球范围内生物多样性和生态系统产生重大影响&#xff08;Nature高引文章 | 北京大学朴世龙院士等&#xff1a;全球变暖对植被物候的影响及其机制&#xff1b;Nature Ecology & Evolution | 南京大学张永光教授团队揭示延长的植被物候期受CO…

set容器的所有操作

1.基本概念 2.构造和赋值 3.大小和交换 4.插入和删除 5.查找和统计 6.set和multiset的区别 7.pair对组创建 用p.first和p.second调用前后两个属性。 8.仿函数实现降序排列 自定义数据类型也一样用仿函数&#xff1a;