Browse Source

im添加好友,im删除好友,未测试

lizhen_gitee 6 months ago
parent
commit
59415f1173
2 changed files with 92 additions and 0 deletions
  1. 10 0
      application/api/controller/Friend.php
  2. 82 0
      application/common/library/Tenim.php

+ 10 - 0
application/api/controller/Friend.php

@@ -4,6 +4,7 @@ namespace app\api\controller;
 
 use app\common\controller\Api;
 use think\Db;
+use app\common\library\Tenim;
 /**
  * 好友
  */
@@ -84,6 +85,10 @@ class Friend extends Api
         $rs3 = Db::name('friend')->where('user_id',$user_id)->where('to_user_id',$this->auth->id)->delete();
         $rs4 = Db::name('friend')->where('user_id',$this->auth->id)->where('to_user_id',$user_id)->delete();
 
+        //IM删除好友
+        /*$tenim = new Tenim();
+        $rs = $tenim->friend_del();*/
+
         $this->success('操作成功');
     }
 
@@ -122,6 +127,11 @@ class Friend extends Api
 
             if($rs1 !== false && $rs2 !== false && $rs3 !== false && $rs4 !== false && $rs5 !== false){
                 Db::commit();
+
+                //IM添加好友
+                /*$tenim = new Tenim();
+                $rs = $tenim->friend_add();*/
+
                 $this->success('操作成功');
             }else{
                 Db::rollback();

+ 82 - 0
application/common/library/Tenim.php

@@ -181,6 +181,88 @@ class Tenim
     }
 
 
+    /**
+     * IM添加好友
+     */
+    public function friend_add($From_Account,$To_Account){
+        $random = rand(10000000,99999999);
+        $usersig = $this->usersig("administrator");
+        // 获取配置信息
+        $config = config("tencent_im");
+        $url = "https://console.tim.qq.com/v4/sns/friend_add";
+        $url .= "?sdkappid=".$config["sdkappid"];
+        $url .= "&identifier=administrator";
+        $url .= "&usersig=".$usersig;
+        $url .= "&random=".$random;
+        $url .= "&contenttype=json";
+        $tencentObj = new tencentim($url);
+
+        $data = [
+            'From_Account' => $From_Account,
+            'AddFriendItem' => [
+                [
+                    'To_Account' => $To_Account,
+                    'AddSource' => 'AddSource_Type_APP',
+
+                ],
+            ],
+            'AddType' => 'Add_Type_Both',
+            'ForceAddFlags' => 1,
+        ];
+
+        $res = $tencentObj->toSend($data);
+
+        if (isset($res['ActionStatus']) && $res['ActionStatus'] == 'OK') {
+            if(    isset($res['ResultItem'][0]['ResultCode'])
+                && isset($res['ResultItem'][0]['To_Account'])
+                && $res['QueryResult'][0]['ResultCode'] == 0
+                && $res['QueryResult'][0]['To_Account'] == $To_Account){
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+
+    /**
+     * IM删除好友
+     */
+    public function friend_del($From_Account,$To_Account){
+        $random = rand(10000000,99999999);
+        $usersig = $this->usersig("administrator");
+        // 获取配置信息
+        $config = config("tencent_im");
+        $url = "https://console.tim.qq.com/v4/sns/friend_delete";
+        $url .= "?sdkappid=".$config["sdkappid"];
+        $url .= "&identifier=administrator";
+        $url .= "&usersig=".$usersig;
+        $url .= "&random=".$random;
+        $url .= "&contenttype=json";
+        $tencentObj = new tencentim($url);
+
+        $data = [
+            'From_Account' => $From_Account,
+            'To_Account' => [
+                $To_Account,
+            ],
+            'DeleteType' => 'Delete_Type_Both',
+        ];
+
+        $res = $tencentObj->toSend($data);
+
+        if (isset($res['ActionStatus']) && $res['ActionStatus'] == 'OK') {
+            if(    isset($res['ResultItem'][0]['ResultCode'])
+                && isset($res['ResultItem'][0]['To_Account'])
+                && $res['QueryResult'][0]['ResultCode'] == 0
+                && $res['QueryResult'][0]['To_Account'] == $To_Account){
+                return true;
+            }
+        }
+
+        return false;
+    }
+
 
     /**
      * 获取usersig签名-具体操作