ShareSDK 企业微信

news/2024/9/18 12:50:53/ 标签: 企业微信, cocoa, macos

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

创建应用

  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.ppmy.cn/news/1515993.html

相关文章

紧跟大模型技术趋势,为更大更通用的大模型提供底层支撑!关于智能计算系统:从深度学习到大模型,全新版本,发布!

文章目录 &#x1f4cb;前言&#x1f3af; 关于智能计算系统&#x1f3af; 内容简介&#x1f3af; 作者简介&#x1f3af; 专家推荐&#x1f3af; 目录大纲&#x1f525; 参与方式 &#x1f4cb;前言 “只要你想把大模型做得更好、做得更大、做得更快、做得更省电&#xff0c;…

如何正确使用static、class、abstract方法二

如何正确使用static、class、abstract方法 ####How methods work in Python A method is a function that is stored as a class attribute. You can declare and access such a function this way: ####方法在Python中是如何工作的 方法就是一个函数&#xff0c;它作为一个类…

膨胀罐的安装注意事项

1、膨胀罐在热力系统中如空调、锅炉、热泵等一般安装在系统的回水端&#xff1b; 2、膨胀罐在供水系统一般装在水泵的出口。 3、膨胀罐在太阳能承压循环系统中一般安装在水泵的进口附近。 膨胀罐的原理&#xff1a; 当外界有压力的水进入膨胀罐气囊内时&#xff0c;密封在罐内的…

【C#】【EXCEL】Bumblebee/Classes/ExGraphic.cs

Bumblebee/Classes/ExGraphic.cs Flow diagram 根据您提供的代码和要求&#xff0c;我将创建一个流程图来展示ExGraphic类的结构。这个流程图将使用中英双语标注&#xff0c;并对应到代码中的英文。 #mermaid-svg-TRwsnkAxI5mhmCmk {font-family:"trebuchet ms",ve…

数学建模学习(118):牛顿冷却定律的原理解析、案例分析与Python求解

介绍来源:2020全国大学生数学建模竞赛论文展示(A070) ,这里我们详细完整的对该优秀论文的方法进行学习和实践。 文章目录 1. 牛顿冷却定律的定义2. 牛顿冷却定律公式3. 牛顿冷却定律的推导4. 牛顿冷却定律的应用方法5. 牛顿冷却定律的验证6. 牛顿冷却定律的图形7. 案例一7.…

建筑楼宇电气安全与能效管理

随着建筑业的发展&#xff0c;配电系统在楼宇建筑特别是高层建筑中的比重也随之加大。现代的建筑的功能越来越完善&#xff0c;变配电工程、空调工程、机电工程、电梯工程、消防工程等工程设施设备与建筑体相结合&#xff0c;敷设的电气线路变得更为复杂&#xff0c;火灾隐患明…

使用Dotween制作按钮弹性动画效果

效果&#xff1a; 方式&#xff1a; 优点&#xff0c;不需要写任何代码、稳定、可自定义效果

AutoGPT开源项目解读

AutoGPT开源项目解读 (qq.com) AutoGPT旨在创建一个自动化的自我改进系统&#xff0c;能够自主执行和学习各种任务 项目基本信息 首先阅读项目的README.md&#xff0c;下述代理和智能体两个名词可互换 项目简介&#xff1a;一个创建和运行智能体的工具&#xff0c;这些智能体…

C++的模板

文章目录 教学一1. 函数模板定义和使用注意事项 2. 类模板定义和使用注意事项 3. 模板特化全特化偏特化 4. 模板参数非类型参数模板模板参数 5. SFINAE&#xff08;Substitution Failure Is Not An Error&#xff09;示例 6. 模板的高级特性6.1 变长模板参数包&#xff08;Vari…

【解决问题】linux系统运行程序可以打印信息到屏幕,重定向到一个文件,文件中没有信息

在Linux系统中运行程序时&#xff0c;如果你发现程序打印的信息无法通过重定向写入到文件中&#xff0c;那么很可能是因为程序将信息打印到了标准错误流&#xff08;stderr&#xff09;&#xff0c;而不是标准输出流&#xff08;stdout&#xff09;。重定向操作通常只对标准输出…

变声器免费的直接说话的那种!不整虚的,一键变声!好听!

听说网络上一堆推荐软件测评的&#xff0c;一半斗志推销自己家的软件&#xff0c;好不好用其次&#xff0c;关键是名声已经在外&#xff01;今天俺老孙也不整这些虚的&#xff0c;直接上干货&#xff0c;测评2024最新的电脑变声软件&#xff0c;帮助大家了解这六款国内外不同系…

OpenCV几何图像变换(6)计算反转仿射变换函数invertAffineTransform()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 反转一个仿射变换。 该函数计算由 23 矩阵 M 表示的逆仿射变换&#xff1a; [ a 11 a 12 b 1 a 21 a 22 b 2 ] \begin{bmatrix} a_{11} & a…

接口如何设计

在企业中&#xff0c;前后端分离开发是一种常见的开发模式。在这种模式下&#xff0c;Java 程序员通常负责设计和实现后端 API 接口&#xff0c;而前端工程师则根据这些接口来开发用户界面和功能。 首先明确该接口是一个前后端交互接口&#xff0c;该接口由前端通过HTTP协议进…

第2章 C语言基础知识

第2章 C语言基础知识 1.printf()函数 在控制台输出数据&#xff0c;需要使用输出函数&#xff0c;C语言常用的输出函数为printf()。 printf()函数为格式化输出函数&#xff0c;其功能是按照用户指定的格式将数据输出到屏幕上。 printf(“格式控制字符串”,[输出列表]); 格式控…

Ruby Web服务开发:构建高效RESTful API的秘诀

标题&#xff1a;Ruby Web服务开发&#xff1a;构建高效RESTful API的秘诀 Ruby作为一种灵活、高效的编程语言&#xff0c;通过其丰富的库和框架&#xff0c;为开发Web服务提供了强大的支持。本文将深入探讨如何在Ruby中开发Web服务&#xff0c;特别是RESTful API。我们将从基…

[JAVA]什么是泛型?泛型在Java中的应用

目录 1.初识泛型的应用 2.创建自定义泛型类 3.利用较小范围的泛型方法定义 4.了解泛型通配符&#xff0c;什么是泛型通配符&#xff1f; 1.初识泛型的应用 —所谓泛型,就是允许在定义类、接口时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。 —定…

前端宝典十六:深入浅出8大设计模式

本文主要探讨前端开发中的各种设计模式&#xff0c;主要分类有&#xff1a; 单例模式建造者模式代理模式装饰器模式适配器模式策略模式观察者模式发布订阅模式 通过对他们实际开发中的使用场景的解析&#xff0c;深入浅出的一起更全面直观的进行学习&#xff1a; 一、单例模…

基于vue3和audio封装的简易音频播放器

样式如图所示 <template><div class"audio-player"><div class"player_top" flex-ac flex-justify-between ><div class"fileName genericTitle" fs-28 l-height-32 height-64 pr-42 flex-ac><span class"t…

机器人走路的问题

public class Test52 {//假设有N个位置&#xff0c;记为1-N&#xff0c;N大于或等于2//开始机器人在M位置上&#xff08;M为1-N中的一个&#xff09;//如果机器人来到1位置&#xff0c;那么下一步只能向右来到2位置//如果机器人来到N位置&#xff0c;那么下一步只能向左来到N-1…

NYX靶机笔记

NYX靶机笔记 概述 VulnHub里的简单靶机 靶机地址&#xff1a;https://download.vulnhub.com/nyx/nyxvm.zip 1、nmap扫描 1&#xff09;主机发现 # -sn 只做ping扫描&#xff0c;不做端口扫描 nmap -sn 192.168.84.1/24 # 发现靶机ip为 MAC Address: 00:50:56:E0:D5:D4 (V…