当前位置: 首页 > news >正文

医疗行业网站建设seo需要掌握哪些技术

医疗行业网站建设,seo需要掌握哪些技术,深圳做app网站建设,wordpress批量修改引用网址需要实现的效果就是在钉钉内点击应用能跳转到第三方网站并且免密登录 1.登录钉钉PC端管理后台 2.通过管理后台进去开发者后台 3.应用开发 创建H5微应用 4.应用创建成功后直接点权限管理全部授权 5.设置H5登录地址 6. 应用管理发布 至此需要配置的步骤全部已完成,…

需要实现的效果就是在钉钉内点击应用能跳转到第三方网站并且免密登录

1.登录钉钉PC端管理后台

2.通过管理后台进去开发者后台 

3.应用开发 创建H5微应用

4.应用创建成功后直接点权限管理全部授权

5.设置H5登录地址 

6. 应用管理发布

 至此需要配置的步骤全部已完成,需要记住已下三个参数后续开发时候会用到

Client ID、Client Secret、CorpId

上代码

前端用的VUE

// 1.需要下载钉钉包
npm install dingtalk-jsapi --save// 2.引入包
import * as dd from 'dingtalk-jsapi';// 3.编写相关登录逻辑
async function initDD() {//判断是不是通过钉钉内打开的应用if (dd.env.platform !== "notInDingTalk") {//进行钉钉登录操作dd.ready(() => {//获取登录一次性凭证dd.runtime.permission.requestAuthCode({corpId: '换成自己对应的参数以上有说明', // 企业id}).then(ddRes => {//凭证获取成功后调用后端登录接口完成相关自动登录逻辑loginDingTalk(ddRes.code).then(res => {//记录应用登录凭证到本地userStore.updateToken(res.data.data.token);nextTick(() => {//跳转到主页router.push(PageEnum.BASE_HOME);});});}).catch(err => {alert(JSON.stringify(err));});});}
}

 后端.NET

WebApi 接口

    /// <summary>/// 用户登录./// </summary>/// <returns></returns>[HttpPost("Login/DingTalk/{code}")][AllowAnonymous][IgnoreLog]public async Task<dynamic> LoginDingTalk(string code){DingUtil ding = new DingUtil();//得到企业访问tokenstring accessToken = ding.GetDingToken("Client ID对应自己应用", "Client Secret对应自己应用");//得到当前钉钉登录的用户信息string strObj = ding.GetUserInfoInApp(code, accessToken);JObject objData = strObj.ToObject();//通过钉钉移动电话获取第三方本地用户信息UserEntity userEntity = await _userRepository.GetFirstAsync(x => x.MobilePhone.Equals(objData["Mobile"]));if (userEntity == null) throw Oops.Bah("当前应用无账号,请联系管理员");//获取到用户信息后完成自动登录相关逻辑 并返回第三方应用登录凭证给登录界面进行缓存var loginInput = await GetUserInfoByUserAccount(userEntity.Account);var result = await Login(loginInput);return new { code = 200, data = result };}
using DingTalk.Api;
using DingTalk.Api.Request;
using DingTalk.Api.Response;
using Mapster;
using Minio.DataModel.Tracing;
using NetTaste;
using Org.BouncyCastle.Ocsp;
using System.Text.RegularExpressions;
using Tea;
using static DingTalk.Api.Request.OapiRobotSendRequest;
using static DingTalk.Api.Response.OapiV2DepartmentListsubResponse;
using static DingTalk.Api.Response.OapiV2UserListResponse;namespace DingDing;/// <summary>
/// 钉钉.
/// </summary>
public class DingUtil
{/// <summary>/// 访问令牌./// </summary>public string token { get; private set; }/// <summary>/// token有效时间./// </summary>public TimeSpan expiresTime { get; private set; }/// <summary>/// 构造函数./// </summary>/// <param name="appKey">企业号ID.</param>/// <param name="appSecret">凭证密钥.</param>public DingUtil(string appKey, string appSecret){token = GetDingToken(appKey, appSecret);}/// <summary>/// 构造函数./// </summary>/// <param name="appKey">企业号ID.</param>/// <param name="appSecret">凭证密钥.</param>public DingUtil(){}/// <summary>/// 钉钉token./// </summary>/// <param name="appKey">企业号ID.</param>/// <param name="appSecret">凭证密钥.</param>/// <returns></returns>public string GetDingToken(string appKey, string appSecret){try{var tokenurl = "https://oapi.dingtalk.com/gettoken";DefaultDingTalkClient client = new DefaultDingTalkClient(tokenurl);OapiGettokenRequest req = new OapiGettokenRequest();req.SetHttpMethod("GET");req.Appkey = appKey;req.Appsecret = appSecret;OapiGettokenResponse response = client.Execute(req);if (response.Errcode == 0){// 过期时间expiresTime = DateTime.Now.Subtract(DateTime.Now.AddSeconds(response.ExpiresIn));return response.AccessToken;}else{throw new Exception("获取钉钉Token失败,失败原因:" + response.Errmsg);}}catch (Exception ex){return string.Empty;}}public string GetUserInfoInApp(string code, string accessToken){var client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/getuserinfo");OapiV2UserGetuserinfoRequest req = new OapiV2UserGetuserinfoRequest();req.Code = code;OapiV2UserGetuserinfoResponse rsp = client.Execute(req, accessToken);if (rsp.Errcode == 0){// 根据unionid获取useridstring unionid = rsp.Result.Unionid;DefaultDingTalkClient clientDingTalkClient = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/user/getbyunionid");OapiUserGetbyunionidRequest reqGetbyunionidRequest = new OapiUserGetbyunionidRequest();reqGetbyunionidRequest.Unionid = unionid;OapiUserGetbyunionidResponse oapiUserGetbyunionidResponse = clientDingTalkClient.Execute(reqGetbyunionidRequest, accessToken);if (oapiUserGetbyunionidResponse.Errcode == 0){// 根据userId获取用户信息string userid = oapiUserGetbyunionidResponse.Result.Userid;var user = GetUserInfoByUserId(userid, accessToken);return user;}}return string.Empty;}/// <summary>/// 根据用户UserId取得用户信息./// </summary>/// <param name="userId"></param>/// <returns></returns>private string GetUserInfoByUserId(string userId, string accessToken){var client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/get");var req = new OapiV2UserGetRequest();req.Userid = userId;req.Language = "zh_CN";var res = client.Execute(req, accessToken);if (res.Errcode == 0) return res.Result.ToJsonString(); else throw new Exception(res.ErrMsg);}#region 用户
}

http://www.hkea.cn/news/990827/

相关文章:

  • 网站建设伍金手指下拉2网上推广平台
  • 沧州网站建设公司翼马爱情链接
  • 计算机学了出来干嘛免费优化推广网站的软件
  • 宁波网站建设优化湖南seo优化按天付费
  • 门户网站手机版google官网入口
  • 深圳市工程建设交易服务中心网站软文什么意思
  • 大型网架加工厂成都网站建设方案优化
  • 导航网站的广告怎么做的千锋教育官方网
  • etc网站开发票网站制作软件免费下载
  • 上海seo网站设计2022十大网络营销案例
  • 还有做网站的必要吗网站运营推广方案
  • 企业营销型网站建设厂家品牌搜索引擎服务优化
  • 学校网站建设计划怎么成为百度推广代理商
  • 普陀网站开发培训学校seo快速优化
  • 建一个商城网站多少钱免费的网站推广软件
  • 手机网站解决方案看网站搜什么关键词
  • 顺企网江西网站建设宜昌今日头条新闻
  • 坪山网站建设行业现状网页设计与制作代码成品
  • 网站建设需求文档模板下载学大教育一对一收费价格表
  • 小型网站怎样优化百度首页官网
  • 网站开发与iso9001关系百度上做推广怎么做
  • wordpress怎么设置导航镇江seo
  • 番禺建设网站服务软文写作网站
  • 有哪些专做自然风景图片的网站石首seo排名
  • 移动网站虚拟主机seo 排名 优化
  • 专业网站建设课程网站推广优化方式
  • 适合站长做的网站信息流广告投放工作内容
  • 做健身网站步骤网站建设网络公司
  • 武汉整站seo数据上云网站关键词优化怎么做的
  • 网站尾部网络seo推广