ShareSDK 企业微信

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

创建应用

  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() {@Overridepublic void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {//分享成功}@Overridepublic void onError(Platform platform, int i, Throwable throwable) {//分享失败}@Overridepublic void onCancel(Platform platform, int i) {//分享取消}
});
platform.share(shareParams);

效果图

授权示例

Platform wework = ShareSDK.getPlatform(Wework.NAME);
wework.setPlatformActionListener(new PlatformActionListener() {@Overridepublic void onComplete(Platform platform, int i, final HashMap<String, Object>      hashMap) {Log.d("ShareSDK", platform.getDb().exportData());}@Overridepublic void onError(Platform platform, int i, Throwable throwable) {}@Overridepublic 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:SSDKPlatformTypeWeworksettings:nilonStateChanged:^(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.rhkb.cn/news/408588.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何查看ubuntu版本

在当前的技术环境中&#xff0c;了解操作系统的具体版本对于用户来说至关重要。这不仅能确保软件兼容性&#xff0c;还有助于进行系统管理和故障排查。对于使用Ubuntu系统的用户来说&#xff0c;有几种不同的方法可以查看当前系统的版本。下面将详细介绍如何查看您的Ubuntu系统…

Spring Boot(快速上手)

Spring Boot 零、环境配置 1. 创建项目 2. 热部署 添加依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional> </dependency&…

polarctf靶场[WEB]cookie欺骗、upload、签到

[web]cookie欺骗 考点&#xff1a;cookie值 工具&#xff1a;Burp Suite抓包 根据题目提示&#xff0c;cookie欺骗&#xff0c;所以要在cookie值寻找关键 进入网页之后&#xff0c;说只有admin用户才能得到flag&#xff0c;而我们此时只属于普通访客 我们查看cookie值&…

「Python程序设计」基本数据类型:字符串

​在python的程序设计过程中&#xff0c;字符串是需要经常处理的变量类型。字符串在程序中的存储方式&#xff0c;类似于一维数组&#xff0c;每个字符占据数组中的一个单元格。 字符串可以存储字符类型的变量&#xff0c;即使是数字类型&#xff0c;也可以通过字符串来进行存…

vue3+vite配置环境变量实现开发、测试、生产的区分

文章目录 一、为什么需要区分 (dev)、测试 (test) 和生产 (prod) 环境二、vue3的项目如何通过配置方式区分不同的环境1、创建不同环境的.env文件2、在不同的.env文件中配置相应的环境变量1&#xff09;.env.develoment2&#xff09;.env.test3&#xff09;.env.production 3、在…

Git之git stash高级用法(五十)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 新书发布&#xff1a;《Android系统多媒体进阶实战》&#x1f680; 优质专栏&#xff1a; Audio工程师进阶系列…

Tomcat 部署与优化

目录 tomcat 简介 tomcat 构件 1. Web 容器 2. Servlet 容器 3.Jsp容器 tomcat 核心组件 Connector Container Service 子容器 总结 tomcat 部署 tomcat请求过程 tomcat部署 tomcat 优化 tomcat配置文件参数优化 JVM优化 tomcat 简介 提到Tomcat 就想到 java&a…

RISC-V vector(1) --- vector的引入与register说明

Vector相较于SIMD的优势 这两种实现方案&#xff0c;都是为了实现数据级并行性&#xff08;存在大量的数据可供程序同时计算&#xff09;&#xff1b; SIMD&#xff08;Single Instruction Multiple Data&#xff09; SIMD是将数据宽度和操作类型&#xff0c;都放在了指令中&a…

http应用层协议

一、万维网 用来存放各种资源的网络。 1、如何在万维网中表示一个资源 ? url ——统一资源定位符&#xff1b; 形式&#xff1a; <协议>://<主机>:<端口>/<路径>&#xff1b; <主机>:<端口>/<路径> //表示了资源所在的…

这个TOP 100 AI应用榜单,包含了所有你需要的使用场景(一)

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;专注于分享AI全维度知识&#xff0c;包括但不限于AI科普&#xff0c;AI工…

【Unity3D小技巧】Unity3D中实现FPS数值显示功能实现

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址QQ群&#xff1a;398291828 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 很简单也很使用的小技巧&#xff0c;就是在Unity…

【系统分析师】-综合知识-计算机系统基础

1、流水线的吞吐率是指流水线在单位时间里所完成的任务数或输出的结果数。设某流水线有 5 段&#xff0c;有 1 段的时间为 2ns &#xff0c;另外 4 段的每段时间为 1ns&#xff0c;利用此流水线完成 100 个任务的吞吐率约为&#xff08;16&#xff09;个/s 。 2、矢量图像通过使…

[NeurIPS 2024] Self-Refine: Iterative Refinement with Self-Feedback

Contents TL;DRReferences TL;DR 通过让 LLM 生成 feedback 不断 refine 自身的回答&#xff0c;可以提升回答效果&#xff0c;但也会带来不可忽视的推理开销 References Madaan, Aman, et al. “Self-refine: Iterative refinement with self-feedback.” Advances in Neura…

广州网站制作seo优化技巧

随着互联网的迅速发展&#xff0c;越来越多的企业意识到网站对于品牌推广和销售的重要性。而在众多网站中&#xff0c;如何让自己的站点脱颖而出&#xff0c;是每个网站管理员和SEO从业者必须面对的挑战。特别是对于广州这样一个经济繁荣、竞争激烈的城市&#xff0c;网站制作和…

基于R语言进行AMMI分析2

接续上文【基于R语言进行AMMI分析1】 1、AMMI()函数的结果解读 # 加载agricolae包 library(agricolae) # 加载数据 data(plrv) # 查看数据 head(plrv) model<-with(plrv,AMMI(Locality,Genotype,Rep,Yield,PCTRUE)) # 查看方差分析结果 model$ANOVA # 查看主成分的方差分析…

minio 后端大文件分片上传,合并,删除分片

背景 网上大多数minio大文件上传都是采用后台返回前端预上传链接&#xff0c;然后由前端去put请求直接和minio通信上传分片文件&#xff0c;然后调用后台合并分片逻辑来达到快申诉上传的目的&#xff0c;详情可以参考我的上两篇文章 最近有个项目域名是https的&#xff0c;但…

详解华为项目管理,附华为高级项目管理内训材料

&#xff08;一&#xff09;华为在项目管理中通过有效的沟通、灵活的组织结构、坚持不懈的努力、细致的管理和科学的考核体系&#xff0c;实现了持续的创新和发展。通过引进先进的管理模式&#xff0c;强调以客户需求为导向&#xff0c;华为不仅优化了技术管理和项目研发流程&a…

单片机原理及技术(八)—— 串行口的工作原理及应用

目录 一、串行通信基础 1.1 并行通信与串行通信 1.1.1 并行通信 1.1.2 串行通信 1.2 同步通信与异步通信 1.3 串行通信的传输模式 二、串行口的结构 2.1 串行口控制寄存器SCON 2.1.1 SM0、SM1 2.1.2 SM2 2.1.3 REN 2.1.4 TB8 2.1.5 RB8 2.1.6 TI 2.1.7 RI 2.2 …

数据结构: 树状数组

在OI赛事中&#xff0c;数据结构是非常重要的一个内容&#xff0c;更是有人说过&#xff0c;算法数据结构程序: A l g o r i t h m D a t a AlgorithmData AlgorithmData S t r u c t u r e P r o g r a m m i n g StructureProgramming StructureProgramming 接下来&#…

如何在 Ubuntu 系统中安装PyCharm集成开发环境?

在上一篇文章中&#xff0c;我们探讨了Jupyter notebook&#xff0c;今天再来看看另一款常用的Python 工具&#xff0c;Pycharm。 PyCharm也是我们日常开发和学习常用的Python 集成开发环境 (IDE)&#xff0c;由 JetBrains 开发。 PyCharm 带有一整套可以帮助用户在使用Pytho…