quguofeng 1 年之前
父節點
當前提交
aa9acbc505

+ 13 - 0
application/api/controller/Dingtalk.php

@@ -106,6 +106,19 @@ class Dingtalk extends Base
         }
         return $user_list;
     }
+    //通过免登码获取用户信息
+    public function get_user_info($code){
+        $c = $this->get_obj()['obj'];
+        $req = new \OapiV2DepartmentListsubRequest;
+        $req->setCode($code);
+        $resp = $c->execute($req, $this->get_obj()['access_token'], "https://oapi.dingtalk.com/topapi/v2/user/getuserinfo");
+        var_dump($resp->result);exit();
+        $user_info = array();
+        if(isset($resp->result) && $resp->result){
+            $user_info = $resp->result->dept_id_list;
+        }
+        return $user_info;
+    }
     public function get_obj(){
         $get_token_obj = new GetUserToken();
         $access_token = $get_token_obj->get_company_token();

+ 0 - 46
application/api/controller/GetUserInfo.php

@@ -1,46 +0,0 @@
-<?php
-namespace app\api\controller;
-use think\Db;
-use hg\apidoc\annotation as Apidoc;
-
-use AlibabaCloud\SDK\Dingtalk\Vcontact_1_0\Dingtalk;
-use \Exception;
-use AlibabaCloud\Tea\Exception\TeaError;
-use AlibabaCloud\Tea\Utils\Utils;
-use Darabonba\OpenApi\Models\Config;
-use AlibabaCloud\SDK\Dingtalk\Vcontact_1_0\Models\GetUserHeaders;
-use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
-/**
- * @Apidoc\Title("获取用户信息")
- * @Apidoc\Group("api")
- */
-class GetUserInfo extends Base
-{
-    public static function createClient(){
-        $config = new Config([]);
-        $config->protocol = "https";
-        $config->regionId = "central";
-        return new Dingtalk($config);
-    }
-    //通过token获取用户信息
-    public function get_user_info($token){
-        $client = self::createClient();
-        $getUserHeaders = new GetUserHeaders([]);
-        $getUserHeaders->xAcsDingtalkAccessToken = $token;
-        $res = $client->getUserWithOptions("me", $getUserHeaders, new RuntimeOptions([]));
-        var_dump($res);exit();
-        try {
-            $client->getUserWithOptions("me", $getUserHeaders, new RuntimeOptions([]));
-        }
-        catch (Exception $err) {
-            if (!($err instanceof TeaError)) {
-                $err = new TeaError([], $err->getMessage(), $err->getCode(), $err);
-            }
-            if (!Utils::empty_($err->code) && !Utils::empty_($err->message)) {
-                // err 中含有 code 和 message 属性,可帮助开发定位问题
-            }
-        }
-    }
-
-
-}

+ 0 - 24
application/api/controller/GetUserToken.php

@@ -18,30 +18,6 @@ class GetUserToken extends Base
         $config->regionId = "central";
         return new Dingtalk($config);
     }
-    //获取用户token
-    public function get_token($code){
-        $client = self::createClient();
-        $getUserTokenRequest = new GetUserTokenRequest([
-            "clientId" => "fsfetgsdfg6e4543dsfs",
-            "clientSecret" => "drtsfe4536f",
-            "code" => $code,
-            "refreshToken" => "",
-            "grantType" => ""
-        ]);
-        $res = $client->getUserToken($getUserTokenRequest);
-        var_dump($res);exit();
-        try {
-            $client->getUserToken($getUserTokenRequest);
-        }
-        catch (Exception $err) {
-            if (!($err instanceof TeaError)) {
-                $err = new TeaError([], $err->getMessage(), $err->getCode(), $err);
-            }
-            if (!Utils::empty_($err->code) && !Utils::empty_($err->message)) {
-
-            }
-        }
-    }
     //获取企业内部凭证
     public function get_company_token(){
         $client = self::createClient();

+ 2 - 7
application/api/controller/Login.php

@@ -1,9 +1,9 @@
 <?php
 namespace app\api\controller;
-use AlibabaCloud\SDK\Dingtalk\Vcrm_1_0\Models\DescribeRelationMetaResponseBody\relationMetaDTOList\items\props\rule;
 use Firebase\JWT\JWT;
 use think\Db;
 use hg\apidoc\annotation as Apidoc;
+use app\api\controller\Dingtalk;
 /**
  * @Apidoc\Title("登录模块")
  * @Apidoc\Group("api")
@@ -25,12 +25,7 @@ class Login extends Base
         if(empty($code)){
             $this->error('参数错误');
         }
-        $get_token_obj = new GetUserToken();
-        $get_info_obj = new GetUserInfo();
-        $user_token = $get_token_obj->get_token($code);
-        $user_token = 'abcddgsdt4534535srfe';
-        $user_info = $get_info_obj->get_user_info($user_token);
-        var_dump($user_info);exit();
+        $user = (new Dingtalk())->get_user_info($code);
     }
     public function  get_token(){
         $uid = input('uid',1);