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

创建应用

  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;
}
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐