bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

php獲取釘釘日志數(shù)據(jù) php獲取釘釘日志數(shù)據(jù)失敗

php怎么獲取釘釘員工授權(quán)信息?

做過一個(gè)E應(yīng)用,使用lumen框架,和你的思路是一樣的,新用戶點(diǎn)進(jìn)去就自動(dòng)授權(quán)注冊(cè)應(yīng)用,數(shù)據(jù)存到我們自己的數(shù)據(jù)庫(kù)中,不依賴釘釘,我們還同步了部門信息,如果粘貼復(fù)制和下面的那個(gè)同學(xué)一樣,看上去你也會(huì)覺得懵,方法都是封裝好了的。

創(chuàng)新互聯(lián)公司是網(wǎng)站建設(shè)專家,致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營(yíng)銷,專業(yè)領(lǐng)域包括成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、電商網(wǎng)站制作開發(fā)、微信小程序開發(fā)、微信營(yíng)銷、系統(tǒng)平臺(tái)開發(fā),與其他網(wǎng)站設(shè)計(jì)及系統(tǒng)開發(fā)公司不同,我們的整合解決方案結(jié)合了恒基網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗(yàn)和互聯(lián)網(wǎng)整合營(yíng)銷的理念,并將策略和執(zhí)行緊密結(jié)合,且不斷評(píng)估并優(yōu)化我們的方案,為客戶提供全方位的互聯(lián)網(wǎng)品牌整合方案!

建議你這樣試試看:

獲取AccessToken:

后端通過corpid,corpsecret請(qǐng)求接口gettoken?corpid=idcorpsecret=secrect獲取AccessToken

獲取釘釘用戶userid:

前端需要相應(yīng)的處理,攜帶authCode請(qǐng)求,加上AccessToken這兩個(gè)參數(shù)請(qǐng)求接口/user/getuserinfo?access_token=access_tokencode=authCode這個(gè)

獲取釘釘用戶詳情:

使用access_token和上一步的釘釘userid 請(qǐng)求接口 /user/get?access_token=ACCESS_TOKENuserid=

插入釘釘用戶的數(shù)據(jù)到你的 數(shù)據(jù)庫(kù)中

我們這樣做的:

/**

* 釘釘免登陸獲獲取用信息

* @param $authCode

* @param $url

* @return array

*/

static function outhLogin($authCode, $url)

{

if (empty($authCode) || empty($url)) {

return self::returnError('1101', self::$errorArray['1101']);

}

$accessToken = ComponentDingtalk::getPcAccessToken();

if ($accessToken['code']) {

self::logError(__CLASS__ . '-' . __FUNCTION__, '獲取access_token失敗');

return self::returnError('1102', self::$errorArray['1102']);

}

$dingUserId = ComponentDingtalk::getDingUserid($accessToken['data'], $authCode);

if ($dingUserId['code']) {

self::logError(__CLASS__ . '-' . __FUNCTION__, '用戶userid獲取失敗(調(diào)用釘釘API)');

return self::returnError('1103', self::$errorArray['1103']);

}

$dinguserInfo = ComponentDingtalk::getDingUserInfo($accessToken['data'], $dingUserId['data']);

if ($dinguserInfo['code']) {

self::logError(__CLASS__ . '-' . __FUNCTION__, '用戶信息獲取失敗(調(diào)用釘釘API)');

return self::returnError('1104', self::$errorArray['1004']);

}

$userInfo = $dinguserInfo['data'];

return self::transaction(function () use ($accessToken, $userInfo, $url) {

if (\count($userInfo['department']) 1) {

$departIdArr = [];

$departNameArr = [];

for ($i = 0, $iMax = \count($userInfo['department']); $i $iMax; $i++) {

$departInfo[$i] = ServerDepartment::getByDdDepartid($userInfo['department'][$i]);

$departIdArr[] = $departInfo[$i]['id'];

$departNameArr[] = $departInfo[$i]['name'];

}

$depart['id'] = implode(',', $departIdArr);

$depart['name'] = implode(',', $departNameArr);

} else {

$ddDepartmentId = implode(',', $userInfo['department']);

$depart = ServerDepartment::getByDdDepartid($ddDepartmentId);

}

//插入用戶

$user = ServerEmployee::getByDdUserid($userInfo['userid']);

if ($user $user['status'] == 2) {

return self::returnError('1105', self::$errorArray['1105']);

}

if (empty($user)) {

$roleId = 0;

$departId = $depart['id'];

$name = $userInfo['name'];

$mobile = $userInfo['mobile'];

$departName = $depart['name'];

$position = $userInfo['position'];

$ddUserid = $userInfo['userid'];

$ddStatus = $userInfo['active'] ? 1 : 2;

$ddInfo = json_encode($userInfo, JSON_UNESCAPED_UNICODE);

$tokenOverAt = (int)(time() + $_ENV['PROJECT_apiAppTokenOverTime']);

$token = self::_createToken($userInfo['userid'], $tokenOverAt);

$status = 1;

$userId = ServerEmployee::insert($roleId, $departId, $name, $mobile, $departName, $position, $ddUserid, $ddStatus, $ddInfo, $token, $tokenOverAt, $status);

if (!$userId) {

self::logError(__CLASS__ . '-' . __FUNCTION__, '用戶初始化創(chuàng)建失敗');

return self::returnError('1106', self::$errorArray['1106']);

}

}

$userId = $userId ?? $user['id'];

// 更新Token

$id = $userId;

$roleId = $user['roleId'];

$departId = $depart['id'];

$name = $userInfo['name'];

$mobile = $userInfo['mobile'];

$departName = $depart['name'];

$position = $userInfo['position'];

$ddUserid = $userInfo['userid'];

$ddStatus = $userInfo['active'] ? 1 : 2;

$ddInfo = json_encode($userInfo, JSON_UNESCAPED_UNICODE);

$tokenOverAt = (int)(time() + $_ENV['PROJECT_apiAppTokenOverTime']);

$token = self::_createToken($userInfo['userid'], $tokenOverAt);

$status = 1;

$updateParams = ServerEmployee::update($id, $roleId, $departId, $name, $mobile, $departName, $position, $ddUserid, $ddStatus, $ddInfo, $token, $tokenOverAt, $status);

if (!$updateParams) {

self::logError(__CLASS__ . '-' . __FUNCTION__, '用戶信息更新失敗' . json_encode($updateParams, JSON_UNESCAPED_UNICODE) . '/' . json_encode([$id, $roleId, $departId, $name, $mobile, $depart, $position, $ddUserid, $ddStatus, $ddInfo, $token, $tokenOverAt, $status]));

return self::returnError('1107', self::$errorArray['1107']);

}

// 前端的配置信息

// 獲取jsTicket

$jsTicket = ComponentDingtalk::getPcJsTicket($accessToken['data']);

if ($jsTicket['code']) {

self::logError(__CLASS__ . '-' . __FUNCTION__, '獲取jsTicket失敗(調(diào)用釘釘API)');

return self::returnError('1111', self::$errorArray['1111']);

}

// 組裝簽名數(shù)據(jù)

$curUrl = $url;;

$nonceStr = uniqid('', true);

$agentId = $_ENV['PROJECT_ddInterfaceAgentID'];

$timeStamp = time();

$corpId = $_ENV['PROJECT_ddInterfaceCorpId'];

$signature = ComponentDingtalk::getSign($jsTicket['data'], $nonceStr, $timeStamp, $curUrl);

$config = array(

'url' = urldecode($curUrl),

'nonceStr' = $nonceStr,

'agentId' = $agentId,

'timeStamp' = $timeStamp,

'corpId' = $corpId,

'signature' = $signature

);

// 獲取當(dāng)前角色的權(quán)限

$roleInfo = ServerRole::getById($roleId);

// 當(dāng)前用戶的頂級(jí)部門(不含根部門)

$departInfo = ServerDepartment::getById($departId);

if ($departInfo['parentid'] == 1) {? // 二級(jí)部門(總經(jīng)辦)

$departRootId = $departId;

$departRootName = $departName;

} else {

$sonDepart = ServerDepartment::getById($departInfo['parentid']);//分組

if ($sonDepart['parentid'] == 1) {

$departRootId = $sonDepart['id'];

$departRootName = $sonDepart['name'];

} else {

$grandsonDepart = ServerDepartment::getById($sonDepart['parentid']);//部門

if ($grandsonDepart['parentid'] == 1) {

$departRootId = $grandsonDepart['id'];

$departRootName = $grandsonDepart['name'];

} else {

$grandchildDepart = ServerDepartment::getById($grandsonDepart['parentid']);//分公司

$departRootId = $grandchildDepart['id'];

$departRootName = $grandchildDepart['name'];

}

}

}

$company = ServerDepartment::get(['parentid' = 0, 'dd_departid' = 1]);

return self::returnSuccess(array(

'id' = $userId,

'name' = $name,

'token' = $token,

'tokenOverAt' = $tokenOverAt,

'config' = $config,

'power' = $roleInfo['power'] ?? '',

'departId' = $departId,

'departName' = $departName,

'departRootId' = $departRootId,

'departRootName' = $departRootName,

'company' = $company['name'],

));

}, function (\Exception $e) {

echo $e-getMessage();

self::logError(__CLASS__ . '-' . __FUNCTION__, $e-getMessage());

return self::returnError('1108', self::$errorArray['1108']);

});

}

釘釘上怎么看別人的日?qǐng)?bào)

若想查看日志,根據(jù)不同的角色可查看的范圍不同哦:

1、其他人(包括管理員)在手機(jī)端/PC端只能查看/導(dǎo)出跟自己相關(guān)(我發(fā)出的/我收到的)的日志。

路徑:【手機(jī)/電腦釘釘】-【工作】-【日志】-【看日志】 或者【手機(jī)/電腦釘釘】-【工作】-【日志】-【統(tǒng)計(jì)】/【日志報(bào)表】

2、主管理員可在管理后臺(tái)導(dǎo)出全成員的數(shù)據(jù)進(jìn)行查看。

3、有日志管理權(quán)限的子管理員僅支持查詢和導(dǎo)出管理范圍內(nèi)的日志內(nèi)容

4、日志導(dǎo)出記錄不支持刪除

5、無法批量閱讀日志

釘釘發(fā)送的日志自己怎么能看到嗎

可以,在你所發(fā)往的群(好友)可以看到,或者點(diǎn) 工作-日志-我發(fā)出的。

取釘釘流程數(shù)據(jù)問題怎么解決

一、銷售管道管理,釘釘表格協(xié)同處理

記得自己在創(chuàng)業(yè)公司還沒有上CRM系統(tǒng)的時(shí)候,我們會(huì)把銷售渠道通過excel表格的方式來進(jìn)行管理,讓所有銷售主管,必須每周都對(duì)所有的銷售員工的客戶信息進(jìn)行復(fù)盤,并將復(fù)盤總結(jié)整理匯總給銷售運(yùn)營(yíng)專員,再由銷售運(yùn)營(yíng)專員匯總到我這里,這樣層層匯總信息經(jīng)常出錯(cuò)誤。

我做銷售管理對(duì)數(shù)據(jù)非常敏感,匯總到我這里,哪個(gè)數(shù)據(jù)信息有問題我一眼就能看出,每當(dāng)我看出來哪里有問題去review我下屬的時(shí)候,他們都會(huì)非常緊張,經(jīng)常會(huì)全盤檢查。有時(shí)候涉及到一些我特別想知道的重要信息但又發(fā)現(xiàn)異常的時(shí)候,難免會(huì)把著急的情緒傳染給了下屬,直到我發(fā)現(xiàn)了釘釘在線文檔,真的是高效又及時(shí)的解決了我這個(gè)問題。

我會(huì)把我想要的信息制定成模板,同步給銷售運(yùn)營(yíng)組和銷售管理者,所有人都在這一張表格上進(jìn)行錄入,銷售運(yùn)營(yíng)可以在線整理。這樣做的好處有以下幾點(diǎn):

1、有效處理信息:銷售管理者可以在線復(fù)盤銷售員工的客戶信息并及時(shí)給出解決方案,而銷售運(yùn)營(yíng)的同事們也可以在線進(jìn)行匯總整理,無論是銷售管理者還是銷售運(yùn)營(yíng)都能直接在表格中@某位伙伴,被@到的伙伴能夠及時(shí)得到需要整改、補(bǔ)錄的要求;

2、實(shí)時(shí)查看數(shù)據(jù):因?yàn)榇蠹叶际窃诰€編輯和錄入,我每次打開釘釘文檔看到的都是最新消息,如果有我需要知道的緊迫信息,我會(huì)直接在文檔中@相應(yīng)的伙伴,快速溝通;

3、方便跟進(jìn)狀態(tài):因?yàn)槟軐?shí)時(shí)看到信息,大家也可以實(shí)時(shí)在線處理,因此在遇到問題落實(shí)某項(xiàng)方案時(shí),能做到實(shí)時(shí)且進(jìn)度能夠讓所有的管理者實(shí)時(shí)跟進(jìn)。

通過釘釘表格,相較于傳統(tǒng)本地的Excel,它最大的優(yōu)勢(shì)就是可以實(shí)現(xiàn)協(xié)同編輯,適合多人、多地、多部門的協(xié)同填表場(chǎng)景,多人在表格里共同編輯數(shù)據(jù),無需本地文件的多次傳輸匯總,提高數(shù)據(jù)收集效率的同時(shí),很好地避免版本混亂可能造成的數(shù)據(jù)錯(cuò)誤。

二、千人大會(huì)信息匯總,釘釘表格幫了我大忙

之前在一家互聯(lián)網(wǎng)公司做營(yíng)銷管理,我們每個(gè)季度都要舉辦一次千人大會(huì),由于是邀請(qǐng)制,不少參會(huì)人員會(huì)臨時(shí)變更相關(guān)信息,且經(jīng)常出現(xiàn)需要調(diào)整的情況。比如變更住宿情況、參會(huì)人員請(qǐng)假、和其他信息調(diào)整等。

有了釘釘表格之后,我們二十幾位人員同時(shí)在線編輯一張表格,并將信息進(jìn)行在線備注,最后我們整理表格的時(shí)候既保證了準(zhǔn)確性,又高效。

好啦,以上就是我的分享啦,通過我的兩個(gè)工作場(chǎng)景案例,想必大家已經(jīng)發(fā)現(xiàn)釘釘在線文檔能夠幫助我們做很好的信息收集和處理,又準(zhǔn)確,又高效,不止如此,釘釘在線文檔是可以設(shè)置權(quán)限的,可以設(shè)置編輯與查看權(quán)限,我們可以根據(jù)所需對(duì)其進(jìn)行設(shè)置。

發(fā)布于 9 月前著作權(quán)歸作者所有

如何使用釘釘接口獲取考勤數(shù)據(jù)

我網(wǎng)上搜了一下,有以下的方法

(來源于正解網(wǎng))考勤打卡數(shù)據(jù)提供兩種方式導(dǎo)出:

手機(jī)客戶端:主管理員、子管理員、企業(yè)負(fù)責(zé)人、考勤組負(fù)責(zé)人,都可以導(dǎo)出數(shù)據(jù) 操作路徑:進(jìn)入工作—考勤打卡—統(tǒng)計(jì)—導(dǎo)出考勤報(bào)表—選擇時(shí)間以及人員進(jìn)行導(dǎo)出,會(huì)通過企業(yè)消息會(huì)話框推送過去,下載打開即可;

企業(yè)管理后臺(tái):只有主管理員和子管理員才可以登陸 操作路徑:需要進(jìn)入企業(yè)管理后臺(tái)——右上角的微應(yīng)用—找到考勤打卡—點(diǎn)擊進(jìn)入后臺(tái)——選擇左邊的考勤報(bào)表—在右邊選擇需要導(dǎo)出的時(shí)間 導(dǎo)出即可。

溫馨提示:只能管理員(包含子管理員)操作導(dǎo)出。

如果你的公司在用考勤系統(tǒng)的話,而它又與釘釘對(duì)接的話,可以實(shí)時(shí)獲取釘釘?shù)目记跀?shù)據(jù),直接在考勤系統(tǒng)中導(dǎo)出數(shù)據(jù)。

網(wǎng)頁標(biāo)題:php獲取釘釘日志數(shù)據(jù) php獲取釘釘日志數(shù)據(jù)失敗
文章起源:http://vcdvsql.cn/article16/hehjgg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)外貿(mào)建站網(wǎng)站導(dǎo)航動(dòng)態(tài)網(wǎng)站網(wǎng)站營(yíng)銷全網(wǎng)營(yíng)銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)