成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識(shí)庫 > 釘釘企業(yè)內(nèi)部H5微應(yīng)用開發(fā)詳解

釘釘企業(yè)內(nèi)部H5微應(yīng)用開發(fā)詳解

熱門標(biāo)簽:電話機(jī)器人黑斑馬免費(fèi) 平?jīng)龅貓D標(biāo)注位置怎么弄 如何獲取地圖標(biāo)注客戶 電話機(jī)器人電銷系統(tǒng)掙話費(fèi) 高德地圖標(biāo)注地點(diǎn)糾錯(cuò) 拓展地圖標(biāo)注 機(jī)器人外呼系統(tǒng)存在哪些能力 南昌仁和怎么申請(qǐng)開通400電話 只辦理400電話

企業(yè)內(nèi)部H5微應(yīng)用開發(fā) 分為 服務(wù)端API和前端API的開發(fā),主要涉及到進(jìn)入應(yīng)用免登流程和JSAPI鑒權(quán)。

JSAPI鑒權(quán)開發(fā)步驟:

1、創(chuàng)建H5微應(yīng)用

登入釘釘開放平臺(tái)(https://open-dev.dingtalk.com/),進(jìn)入“應(yīng)用開發(fā)”->企業(yè)內(nèi)部開發(fā)H5微應(yīng)用->創(chuàng)建應(yīng)用,并填寫基本信息和配置開發(fā)信息

2、JSAPI鑒權(quán)服務(wù)端API的開發(fā):

(1)通過appKey 和 appSecret 獲取調(diào)用接口憑證AccessToken(https://oapi.dingtalk.com/gettoken?appkey=appKey&appsecret=appSecret)

(2)通過AccessToken 獲取用于JSAPI的臨時(shí)票據(jù)Ticket(https://oapi.dingtalk.com/get_jsapi_ticket?access_token=ACCESS_TOKEN)

(3)ticket(JSAPI的臨時(shí)票據(jù)),nonceStr(隨機(jī)串),timeStamp(時(shí)間戳),url(當(dāng)前網(wǎng)頁的URL,不包含#及其后面部分)計(jì)算簽名信息

計(jì)算簽名參數(shù)

/*
     *ticket(JSAPI的臨時(shí)票據(jù)),nonceStr(隨機(jī)串),timeStamp(時(shí)間戳),url(當(dāng)前網(wǎng)頁的URL,不包含#及其后面部分)計(jì)算簽名信息
     * */
    public static function sign($ticket, $nonceStr, $timeStamp, $url)
    {
        $plain = 'jsapi_ticket=' . $ticket .
            '&noncestr=' . $nonceStr .
            '&timestamp=' . $timeStamp .
            '&url=' . $url;
        return sha1($plain);
    }

(4)通過AccessToken 獲取用于JSAPI的臨時(shí)票據(jù)Ticket(說明:由于會(huì)牽涉到多個(gè)企業(yè),企業(yè)的appKey 和 appSecret的一些信息都是寫在JSON配置文件中,前端傳企業(yè)ID到服務(wù)端,服務(wù)端就會(huì)從JSON配置文件中獲取企業(yè)信息)

/*
     * 根據(jù)企業(yè)ID corpid 返回 JSAPI 鑒權(quán)配置信息
     * */
    public static function getConfig($corpid)
    {
        $_config = self::getApiConfig($corpid);
        $appkey = $_config["AppKey"];
        $appsecret = $_config["AppSecret"];
        $agentid = $_config["AgentId"];
        $nonceStr = 'flywong';
        $timeStamp = time();
        //$url = self::getCurrentUrl();
        $url = $_config["AppUrl"];
        
        $accessToken = self::getAccessToken($appkey,$appsecret);
        $ticket = self::getTicket($accessToken);
        $signature = self::sign($ticket, $nonceStr, $timeStamp, $url);
        
        $config = array(
            'agentId' => $agentid,
            'corpId' => $corpid,
            'timeStamp' => $timeStamp,
            'nonceStr' => $nonceStr,
            'signature' => $signature,
            'url' => $url,
            'type'=>0
        );
        return json_encode($config, JSON_UNESCAPED_SLASHES);
    }
/*
     * 根據(jù)企業(yè)ID corpid 從api_config.json配置文件中找到 企業(yè)對(duì)應(yīng)的信息,并返回企業(yè)應(yīng)用開發(fā)信息
     * */
    public static function getApiConfig($corpid)
    {
         $json_string = file_get_contents(__DIR__ .'/../api_config.json');   //從文件中讀取數(shù)據(jù)到PHP變量
         $arrs = json_decode($json_string, true); 
         foreach($arrs as $key => $value)
         {
             if($value["CorpId"] == $corpid)
             {
                 return $value;
             }
         }
    }

企業(yè)的配置文件api_config.json

3、JSAPI鑒權(quán)前端API的開發(fā):

前端發(fā)送GET請(qǐng)求獲取服務(wù)端的JSAPI 鑒權(quán)配置信息

// 異步獲取dd.config
  async getDDConfig({commit, state},callback) {
    // 發(fā)送異步ajax請(qǐng)求
    const result = await reqDDConfig(state.CorpId)
    // 提交一個(gè)mutation
    const ddconfig = result
    ddconfig.jsApiList= state.jsApiList 
  dd.config(ddconfig); 
  commit(RECEIVE_DDCONFIG, {ddconfig}) 

  // 數(shù)據(jù)更新了, 通知一下組件 
  callback && callback() 
}
let that = this;
      //獲取 JSAPI 鑒權(quán)配置信息
      that.$store.dispatch('getDDConfig', () => {//
        that.$nextTick(() => {// 數(shù)據(jù)ddconfig state 更新后執(zhí)行
          that.$store.dispatch('getUserinfo')//獲取登入用戶信息
          that.$store.dispatch('getGeolocation')//獲取地圖定位信息
        })
      })
/* 狀態(tài)管理*/
export default {
  CorpId:'dingb0bd5c5a3ba53e1231232378f',//企業(yè)ID
  ddconfig:{},//釘釘簽權(quán)配置信息
  jsApiList:[
    'runtime.info',
    'biz.contact.choose',
    'device.notification.confirm',
    'device.notification.alert',
    'device.notification.prompt',
    'biz.ding.post',
    'biz.util.openLink',
    'device.geolocation.get',
    'biz.util.scanCard'
  ],//需要簽權(quán)的JSAPI
  userinfo:{}, //用戶信息
  geolocation:{} //地圖定位信息
}

4、H5微應(yīng)用的免登

“免登”是指用戶進(jìn)入應(yīng)用后,無需輸入釘釘用戶名和密碼,應(yīng)用程序可自動(dòng)獲取當(dāng)前用戶身份,進(jìn)而登錄系統(tǒng)的流程。

1、前端去獲取微應(yīng)用免登授權(quán)碼,然后把授權(quán)碼發(fā)送到服務(wù)端api得到當(dāng)前用戶信息

// 異步獲取userinfo
  getUserinfo({commit, state}) {
    dd.runtime.permission.requestAuthCode({
      corpId: state.CorpId, // 企業(yè)id
      onSuccess: async function (info) {
        let code = info.code // 通過該免登授權(quán)碼可以獲取用戶身份
        // 發(fā)送異步ajax請(qǐng)求
        const result = await reqUserinfo(code,state.CorpId)
        // 提交一個(gè)mutation
        const userinfo = result
        commit(RECEIVE_USERINFO, {userinfo})
      }
    })
  }

2、服務(wù)端API獲取用戶信息

/*
     * 通過免登授權(quán)碼code和access_token獲取用戶的userid
     * */
    public static function getUserInfo($accessToken, $code)
    {
        $response = \util\Http::get("/user/getuserinfo",array("access_token" => $accessToken, "code" => $code));
        $userinfo = json_decode(json_encode($response),true);
        $userid = $userinfo["userid"];
        return self::getuser($accessToken,$userid);
    }
    /*
     * 通過access_token 和 userid 獲取用戶詳情
     * */
    private static function getuser($accessToken,$userid)
    {
        $response = \util\Http::get("/user/get",array("access_token" => $accessToken, "userid" => $userid));
        return json_encode($response);
    }

提醒:釘釘?shù)男畔@取必須在釘釘應(yīng)用環(huán)境中運(yùn)行。(我是在電腦上安裝安卓模擬器然后安裝釘釘APP進(jìn)行調(diào)試的)

到此這篇關(guān)于釘釘企業(yè)內(nèi)部H5微應(yīng)用開發(fā)詳解的文章就介紹到這了,更多相關(guān)釘釘企業(yè)內(nèi)部H5微應(yīng)用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!

標(biāo)簽:新疆 漯河 遼源 池州 西藏 青島 永州 棗莊

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《釘釘企業(yè)內(nèi)部H5微應(yīng)用開發(fā)詳解》,本文關(guān)鍵詞  釘釘,企業(yè),內(nèi)部,微,應(yīng)用開發(fā),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《釘釘企業(yè)內(nèi)部H5微應(yīng)用開發(fā)詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于釘釘企業(yè)內(nèi)部H5微應(yīng)用開發(fā)詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    h网站视频在线观看| 极品少妇xxxx精品少妇| 久久久久99精品成人片我成大片| 麻豆国产一区二区| 深夜成人福利| 日韩精品中文字幕一区二区| 国产精品久久久久久久精| 亚洲免费av高清| 91theporn国产在线观看| 久久国产成人精品国产成人亚洲| 秋霞成人影院| 成人av无码一区二区三区| 鲁一鲁一鲁一鲁一澡| 久久久久久九九九| 日本欧美一区二区三区乱码| 亚洲乱熟女一区二区| 深田咏美中文字幕| 成人网免费视频| 一区二区三区在线观看网站| 色综合久久久久久久| av漫画网站在线观看| 国产精品久久精品视| 一区二区三区高清在线| 性欧美18+| 中文字幕一区二区三区四区五区人| 俺去了亚洲欧美日韩| 国产丝袜护土调教在线视频| 欧美激情综合五月色丁香| 国产一级二级三级在线观看| 日本一卡二卡在线| 精品中文字幕乱| 欧美乱妇视频| 欧美xxx性| 欧美二区在线播放| 欧美aaaaa喷水| 91精品国产一区二区三区| 亚洲视频网站在线观看| 国产福利第一视频在线播放| 成人免费视频网站入口| 久久精品五月天| 羞羞视频网站| 蜜臀久久精品| 456亚洲精品成人影院| 精品人妻伦一区二区三区久久| 午夜久久久久久久久久久| 一区二区三区视频| 91最新国产视频| 超碰中文字幕在线观看| 国产综合色在线视频区| 91福利在线播放| yy4480电影网| 97一区二区国产好的精华液| 亚洲精品国产精品国| 午夜精品婷婷| 国产变态拳头交视频一区二区| 成年人小视频在线观看| 亚洲性色视频| 亚洲国产精华液| 国产精品第13页| 国产激情视频在线| 中文字幕第99页| 91国内视频| 亚洲欧美国产精品专区久久| 成年网站免费在线观看| 国产伦理吴梦梦伦理| 欧美激情免费在线| 欧美性生交大片免费| 国外成人在线播放| 日韩精品欧美大片| 免费在线国产| 91禁在线观看| 特级黄色片视频| 热久久一区二区| 狠狠操天天操夜夜操| 精品在线视频一区二区| 久久久999成人| 中文字幕巨乱亚洲| 麻豆成人入口| 黄色一区二区三区| 日韩少妇内射免费播放| 黄色片在线看| 亚州成人av在线| 天堂视频福利| 欧美性www| 美女网站免费观看视频| 成人欧美一区二区三区在线湿哒哒| 日日噜噜夜夜狠狠久久波多野| 国产精品系列在线| 亚洲综合在线第一页| 清纯唯美激情亚洲| 97色婷婷成人综合在线观看| 狠狠噜噜久久| 欧美一级免费在线| 国产精品v日韩精品v在线观看| ass精品国模裸体欣赏pics| 欧美午夜精品一区二区三区| 久久不射热爱视频精品| 欧美午夜不卡在线观看免费| 看全色黄大色大片| 成人性色生活片免费看爆迷你毛片| 欧美三级黄美女| 国产欧美一区二| 久久中文在线| 你懂的一区二区| 久久人妻一区二区| 爽好久久久欧美精品| 亚洲精品白浆高清| 石原莉奈在线亚洲二区| 青青草视频在线观看| 欧美超碰在线观看| 国产欧美日韩精品在线观看| 加勒比综合在线| 孩xxxx性bbbb欧美| 亚洲丰满少妇videoshd| 99久久综合网| 在线观看黄色| 人人影院免费大片| yy1111111| 中文字幕永久在线观看| 日韩av一区二区在线| 91久久精品午夜一区二区| 亚洲国产精品久久艾草纯爱| 久久99精品久久久久久久久久| 亚洲天堂久久av| 91九色在线观看视频| 波多野结衣av在线观看| 亚洲精品日韩久久久| 欧美与欧洲交xxxx免费观看| 在线免费av资源| 调教视频免费在线观看| 亚洲精品国产精品久久清纯直播| 久久久久久久久久久9不雅视频| 免费看黄色一级大片| 国产精品电影久久久久电影网| 69av在线播放| 在线观看精品国产| 97caopor国产在线视频| 真实乱视频国产免费观看| 亚洲激情av| 国产wwwwwww| 99ri国产在线| 91久久精品视频| 国产又黄又爽视频| 女人被狂躁到高潮的免费| 久草成人资源| av一本久道久久综合久久鬼色| 欧美三级日本三级少妇99| 亚洲国产欧美自拍| 97最新国自产拍视频在线完整在线看| 在线观看高清免费视频| 国产丰满果冻videossex| 91好色先生tv| 啪啪国产精品| 在线天堂中文www官网| 国产一区激情在线| 欧美日本韩国一区二区三区| 欧美一级二级在线观看| 日韩欧美三级在线观看| 在线观看免费黄视频| 美女国产一区| 国产伦精品一区二区三区妓女下载| 视频一区中文字幕国产| 波多野结衣中文字幕久久| 特黄特色大片免费视频大全| 手机在线色视频| 97国产在线观看| 中文不卡1区2区3区| 国产福利精品av综合导导航| 日韩精品极品毛片系列视频| 亚洲欧美自拍另类日韩| 久久久久久久久蜜桃| 国产人成高清视频观看| 香蕉成人app免费看片| 中文字幕在线不卡一区二区三区| 午夜老司机在线观看| 国产精品久久久久久免费播放| 日韩一区二区不卡视频| 中文字幕在线中文字幕在线中三区| 亚洲高清久久| 精品91久久久久| 首页国产欧美日韩丝袜| 精品久久久久一区二区三区| 亚洲精品1区2区3区| 亚洲人永久免费| 欧美亚洲第一页| 99久久亚洲一区二区三区青草| 在线日韩电影| 99久久久无码国产精品免费| 国产成人禁片免费观看视频| 特大黑人巨人吊xxxx| v888av成人| 国产最新精品视频| 国产精品免费av| 欧美在线观看视频一区| 正在播放国产一区| 国产69精品99久久久久久宅男| 手机在线看片1024| 伊人久久综合视频| 亚洲女同女同女同女同女同69| 污视频在线播放| 久久综合亚洲社区| 亚洲高清毛片一区二区| 午夜亚洲福利| 成a人片国产精品| 有色视频在线观看| 电影亚洲精品噜噜在线观看| 人人精品视频| 色婷婷精品大视频在线蜜桃视频| 亚洲一二三区视频在线观看| 国产超碰人人模人人爽人人添| 日本加勒比高清在线| 日本xxxxxxx免费视频| 亚洲日本丝袜连裤袜办公室| 一道本在线免费视频| 欧美激情在线免费观看| 亚洲精华国产精华精华液网站| 国产精品毛片久久久久久久久久99999999| 日韩中文字幕免费在线观看| 3atv在线一区二区三区| 欧美电影在线观看一区| 成人在色线视频在线观看免费大全| 欧美一区二区三区激情视频| 成人精品视频在线播放| 成人国产在线| 欧美精品一区二区不卡| 爽爽影院免费观看视频| 色中色综合影院手机版在线观看| 日韩高清在线一区二区| 中文字幕av高清在线观看| 欧美成年人视频网站欧美| 九九久久精品| 天天摸日日操| 美女爆乳18禁www久久久久久| 精品小视频在线| 91精品大全| 2025国产精品自拍| xx欧美视频| 九九精品免费视频| 日韩中文字幕欧美| 亚洲精品粉嫩美女一区| 浓精h攵女乱爱av| 男女爱爱网站| 色综合色综合久久综合频道88| 九色porny丨首页入口在线| 日韩一区二区三区四区| 久久国内精品视频| 欧美激情一区二区三区在线| www.伊人久久| 国产+成+人+亚洲欧洲自线| 亚洲1区在线观看| 中文字幕日本不卡| 国产精品夜夜嗨| 精品不卡一区| 国产日韩欧美精品在线观看| 亚洲欧美另类久久久精品| 激情欧美日韩| 91国语精品自产拍在线观看性色| 国产精品久久久av| 亚洲精品一区二区三区蜜桃下载| jlzzjlzz欧美大全| 少妇网站在线观看| 亚洲欧美小说色综合小说一区| 成人av免费电影网站| 久久久久久人妻一区二区三区| www.aqdy爱情电影网| 午夜在线观看视频| 婷婷综合影院| 美女视频一区免费观看| 这里是久久伊人| 久久精品国产清高在天天线| 曰韩少妇与小伙激情| 51午夜精品国产| 国产精品入口66mio| 国产这里有精品| 欧美精品第一区| 日本在线аv| 亚洲国产综合色| 亚洲精品tv久久久久久久久| 四虎成人免费电影| 国产福利在线免费观看| 亚洲国产成人一区| 久久久久久婷婷| 亚洲成人精品久久久| 日韩欧美视频一区二区三区四区| 欧美男男tv网站在线播放| 亚洲美女炮图| 丝袜一区二区三区| 色婷婷视频在线观看| 天天干视频在线| 午夜在线不卡| seba5欧美综合另类| 欧美风情在线观看| 日本一二三区在线| 91av视频在线| 国产精品一区二区在线观看| 九九九九精品| 2021中文字幕在线| 欧美三级午夜理伦三级中文幕| av网站在线免费看推荐| 国产一区二区三区不卡在线观看| 欧美videos另类齐全| 91超碰碰碰碰久久久久久综合| 色综合久久天天综合网| 中文字幕日本视频| 婷婷五月综合久久中文字幕| 欧美巨大黑人极品精男| 欧美色精品在线视频| 99精品欧美一区二区| 亚洲欧洲久久| 天天影视网天天综合色在线播放| 伊人中文字幕在线观看| 国产亚洲欧洲| 在线网址91| 日韩精品在线播放| 日韩在线观看一区二区| 日本欧美久久久久免费播放网| gogo高清在线播放免费| 日韩av电影免费观看| 久久亚洲影视| 影音先锋男人资源在线| 亚洲一区三区电影在线观看| 国产午夜在线播放| 亚洲欧美一区二区三| 免费人成黄页在线观看忧物| 日本1区2区3区视频| 黑人巨大猛交丰满少妇| 精品国产免费久久久久久尖叫| 91插插视频|