ShareSDK 企业微信

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

创建应用

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

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

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

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

iOS端配置信息如下

Android端配置信息如下

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

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

集成使用

配置信息获取

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

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

配置URL Scheme

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

初始化平台

在使用企业微信能力之前,需要先对企业微信进行初始化,其中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(@"取消");
        }
}];

效果图

授权示例

#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;
}
相关推荐
归辞...3 小时前
暑假第四周——天气预报仿写
macos·objective-c·cocoa
安和昂8 小时前
【iOS】push和present的区别
macos·ios·cocoa
牛奔9 小时前
mac 如何开启指定端口供外部访问?
macos
鹏大师运维10 小时前
Mac M芯片上安装统信UOS 1070arm64虚拟机
linux·macos·信创·国产化·arm64·统信·uos1070
浏览器爱好者15 小时前
macOS上谷歌浏览器的十大隐藏功能
macos
tubage20231 天前
Benvista PhotoZoom Pro / Classic 9.0.2 Win/mac + Plug-in中文破解版
macos·电脑·photozoom·photozoom 9
lzhdim1 天前
苹果宣布iOS 18正式版9月17日推送:支持27款iPhone升级
macos·ios·objective-c·cocoa·iphone
键盘敲没电1 天前
【iOS】属性关键字
macos·ios·cocoa
归辞...1 天前
「iOS学习」——Masonry学习
学习·ios·cocoa
我和我的顶顶年华2 天前
如何在mac上玩使命召唤手游?苹果电脑好玩的第一人称射击游戏推荐
游戏·macos·容器·电脑·macbook·使命召唤·crossover免费下载