首页 » 软件开发 » 钉钉应用开发(获取思源在这里授权失败)

钉钉应用开发(获取思源在这里授权失败)

少女玫瑰心 2024-07-24 04:31:35 0

扫一扫用手机浏览

文章目录 [+]

https://open.dingtalk.com/document/orgapp/jsapi-overview

<button id="choose">选择照片</button>

$('#choose').on('click', function() { // 点击事件处理逻辑 $("body").append('<p>choose:').append("点击了选择照片按钮").append('</p>'); $.ajax({ url: '/ding_ding/auth', type: 'GET', success: function(response) { if (response) { response =response.data $("body").append('<p>config:').append(JSON.stringify({ agentId: response.agentId, corpId: response.corpId, timeStamp: response.timestamp, nonceStr: response.nonceStr, signature: response.signature, type:0, jsApiList: [ // 在这里添加你需要使用的钉钉 JSAPI 'biz.util.chooseImage' ] })).append('</p>'); // 鉴权参数获取成功 // 调用钉钉 JSAPI的config方法 dd.config({ agentId: response.agentId, corpId: response.corpId, timeStamp: response.timestamp, nonceStr: response.nonceStr, signature: response.signature, type:0, jsApiList: [ // 在这里添加你需要使用的钉钉 JSAPI 'biz.util.chooseImage' ] }) dd.ready(function () { dd.biz.util.chooseImage({ count:1, secret:false, sourceType:['album'], position:'back', onSuccess: (res) => { $("body").append('<p>onSuccess:').append(JSON.stringify(res)).append('</p>'); $("body").append('<p>onSuccess:').append( res.files[0].path).append('</p>'); dd.biz.util.uploadFile({ url: '/upload_image', filePath: res.files[0].path, fileName: 'file', onSuccess: (res) => { $("body").append('<p>uploadFile.onSuccess:').append(JSON.stringify(res)).append('</p>'); }, onFail:(err) =>{ $("body").append('<p>uploadFile.onFail:').append(JSON.stringify(err)).append('</p>'); } }) }, onFail:(err) =>{ console.log(JSON.stringify(err)) $("body").append('<p>chooseImage.onFail:').append(JSON.stringify(err)).append('</p>'); } }) }); dd.error(function(error) { // 钉钉 JSAPI 加载失败 // 可以在这里处理失败情况 $("body").append('<p>dd.onFail:').append(JSON.stringify(error)).append('</p>'); }); } else { // 鉴权参数获取失败 console.error(response.error); } }, error: function(xhr, status, error) { // 处理错误情况 console.error(error); } });});

后端代码

<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;use Illuminate\Support\Str;class DingDingAuthController extends Controller{ public function getUserInfo(Request $request) { // 获取access_token $token = $this->getAccessToken(); // $response = resolve('guzzle')->request('POST', 'https://oapi.dingtalk.com/topapi/v2/user/getuserinfo', [ 'query' => [ 'access_token' => $token, ], 'form_params' => [ 'code' => $request['code'], ] ]); $dingDingUser = json_decode($response->getBody()->getContents(), true); return $dingDingUser; } // AUTH public function auth(Request $request) { $corpId = DingDingAuthController::CORPID; // $agentId = DingDingAuthController::AGENTID; // $url = 'https://abc.com/getDingDingUser.html'; // 当前页面的完整 URL $timestamp = time(); // 当前时间戳 $nonceStr = Str::random(16); // 生成随机字符串 $signature = $this->generateSignature($nonceStr, $timestamp, $url); return successResponseArray( [ 'corpId' => $corpId, 'agentId' => $agentId, 'timestamp' => $timestamp, 'nonceStr' => $nonceStr, 'signature' => $signature, ] ); } private function generateSignature($nonceStr, $timestamp, $url) { $ticket = $this->getJsapiTicket(); $string = "jsapi_ticket={$ticket}&noncestr={$nonceStr}×tamp={$timestamp}&url={$url}"; return sha1($string); } private function getJsapiTicket() { $accessToken = $this->getAccessToken(); $response = resolve('guzzle')->request('GET', 'https://oapi.dingtalk.com/get_jsapi_ticket', [ 'query' => [ 'access_token' => $accessToken, 'type' => 'jsapi', ], ]); $response = json_decode($response->getBody()->getContents(), true); return $response['ticket']; } private function getAccessToken() { // 获取access_token $response = resolve('guzzle')->request('GET', 'https://oapi.dingtalk.com/gettoken', [ 'query' => [ 'appkey' => DingDingAuthController::APPKEY, 'appsecret' => DingDingAuthController::APPSECRET, ] ]); $accessToken = json_decode($response->getBody()->getContents(), true); return $accessToken['access_token']; }}

钉钉应用开发(获取思源在这里授权失败) 软件开发
(图片来自网络侵删)
标签:

相关文章

语言中的借用,文化交融的桥梁

自古以来,人类社会的交流与发展离不开语言的传播。在漫长的历史长河中,各民族、各地区之间的文化相互碰撞、交融,产生了许多独特的语言现...

软件开发 2025-01-01 阅读1 评论0

机顶盒协议,守护数字生活的新卫士

随着科技的飞速发展,数字家庭逐渐走进千家万户。在这个时代,机顶盒成为了连接我们与丰富多彩的数字世界的重要桥梁。而机顶盒协议,作为保...

软件开发 2025-01-01 阅读1 评论0

语言基础在现代社会的重要性及方法步骤

语言是人类沟通的桥梁,是社会发展的基础。语言基础作为语言学习的基石,对于个人、社会乃至国家的发展具有重要意义。本文将从语言基础在现...

软件开发 2025-01-01 阅读2 评论0

粤语电影,传承文化,点亮时代之光

粤语电影,作为中国电影产业的一朵奇葩,以其独特的地域特色、丰富的文化内涵和鲜明的艺术风格,赢得了广大观众的喜爱。本文将从粤语电影的...

软件开发 2025-01-01 阅读3 评论0

苹果游戏语言,塑造未来娱乐体验的基石

随着科技的飞速发展,游戏产业逐渐成为全球娱乐市场的重要支柱。在我国,游戏产业更是蓬勃发展,吸引了无数玩家和投资者的目光。而在这其中...

软件开发 2025-01-01 阅读1 评论0