zoukankan      html  css  js  c++  java
  • thinkPHP5 对接魔方网表

    1、先说这个登录问题

      第一种:


      目前魔方网表里没有提供专门的登录接口,但是有提供了一个临时的token解决方案,据魔方网表的技术说,后面有可能会被正式的oauth验证替换。

      这个临时的token方案,非常简单,就是用curl方式去访问他的相当于是登录地址一样,然后会 返回一串字符 给你,在之后的每个请求里,都带上这个字符串,就ok了。

      

      public static function getMofangCookie()
        {
            $mofangHost = "http://www.****.com";   //魔方地址
            //这个就是获取临时token的地址
            $url = "/magicflu/html/bpm/bpmOpToken.jsp";
            //使用curl方式获取token
            $data = getCurlCookie($mofangHost . $url);
            //然后要拼接上 key 
            $cookie = 'BPMOPTOKEN=' . $data;
            return $cookie;
        }   
      
      public function getCurlCookie($url)
        {
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            $output = curl_exec($ch);
            curl_close($ch);
            return $output;
        }

      以上是获取到的token,然后在每个请求中都带上这个参数,就算是已登录用户了

      第二种(如果数据比较重要不建议此方式):

      如果不用临时token的解决方案,就要把接口要使用到的表单和空间设置成匿名也能访问才行,而且不仅是接口要使用到的,还有表单所联动的那些表也要设置成匿名,才能拿得到,这样这些表单就要暴露在能访问到这个空间的所有人面前

      说一下如何设置

      首先要把使用到的这个空间的权限设置成   允许匿名访问

      

       然后,权限设置里设置   未登录用户  的权限

         

      这里要设置两个权限:一个是表本身的未登录用户的权限,另一个是需要读取记录的权限

      注意:这里设置好了如果还不行,则有可能是 回写公式   和   过滤器  这两个影响了,可以选择先关掉试试

      

       然后就可以按照 API 去增删改查数据了。

    2、增删改查

      

      

       正常每个表单的工具栏那里都会有一个这样的标识。进入后就可以看到请求地址以及请求方式

      

      然后按照接口文档上去编辑自己的逻辑就可以了。

      例(更新操作):

      curlRequest($url, json_encode($data, true), $cookie, 'put');

      附上增删改的 curl 请求方式:

       /**
         * curl 请求
         * @param $url  string  地址
         * @param $data  string  数据字符串
         * @param $cookie  string  cookie
         * @param $method  string  请求方式
         * @return string
         */
        function curlRequest($url, $data='', $cookie = '', $method = 'post')
        {
            $ch = curl_init(); //初始化CURL句柄
            curl_setopt($ch, CURLOPT_URL, $url); //设置请求的URL
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //设为TRUE把curl_exec()结果转化为字串,而不是直接输出
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method); //设置请求方式
    
            curl_setopt($ch, CURLOPT_HTTPHEADER, array("X-HTTP-Method-Override: $method"));//设置HTTP头信息
            curl_setopt($ch, CURLOPT_POSTFIELDS, $data); //设置提交的字符串
            curl_setopt($ch, CURLOPT_COOKIE, $cookie);   //携带的cookie
            $document = curl_exec($ch);//执行预定义的CURL
            if (!curl_errno($ch)) {
                $info = curl_getinfo($ch);
                echo 'Took ' . $info['total_time'] . ' seconds to send a request to ' . $info['url'];
            } else {
                echo 'Curl error: ' . curl_error($ch);
            }
            curl_close($ch);
    
            return $document;
        }
  • 相关阅读:
    JAVA共通関数入力パラメータをダブルクォートで囲む
    JAVA共通関数 システム時刻を取得する(2)
    JAVA共通関数ーー日付変換(YYYYMMDD → YYYY年MM月DD日)を行う
    JAVA共通関数文字変換 & " をHTML用に変換する(改行はタグで置き換え)
    JAVA共通関数日付変換(YYYYMMDD → YYYY/MM/DD)を行う
    JAVA共通関数--カンマ削除(数値からカンマを取り除く)を行う
    JAVASCRIPT共通関数デジタル時計を表示する
    JAVASCRIPT共通関数フォームの飛び先変更
    JAVA共通関数ーー数値フォーマット(数値をカンマ付きに編集)を行う
    VSCode linux下正确支持查找引用 "Find all reference"
  • 原文地址:https://www.cnblogs.com/j-jian/p/13323596.html
Copyright © 2011-2022 走看看