zoukankan      html  css  js  c++  java
  • 【PHP】字节跳动小程序 : 创建二维码图片接口的报错: bad access_token

    官方文档地址: 创建二维码
    论坛帖子地址: {errcode:40002,errmsg:bad access_token}

    解决代码

     /**
         * 获取小程序/小游戏的二维码。
         * @return array|string
         */
        public function create()
        {
            $access_token = '';
            $request_url = 'https://developer.toutiao.com/api/apps/qrcode';
            $query = [
                'access_token' => $access_token,
                'appname'=>'douyin',
            ];
            $headerArray = ["Content-type:application/json"];
            $CurlServer = new CurlServer();
            $result = $CurlServer->curl_post($request_url,$query,$headerArray);
            
            print_r($result);
            exit;
    
            return $result;
        }
    
    

    此处返回的是一个图片 Buffer,不是链接, 可以使用以下方法写入图片。返回地址

      //将图片buffer 写入 
      $file = fopen("./qrcode/123.jpg","w");//创建件准备写入,
      fwrite($file,$result);//写入
      fclose($file);//关闭
          
    

    curlpost

        public static function curl_post($url,$data=array(),$headerArray=[]){
            $data  = json_encode($data);    
            $curl = curl_init();
            curl_setopt($curl, CURLOPT_URL, $url);
            curl_setopt($curl,CURLOPT_HEADER,0);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 5);
            curl_setopt($curl, CURLOPT_POST, 1); 
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
            curl_setopt($curl,CURLOPT_HTTPHEADER,$headerArray);
            //ssl false
            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
            curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,FALSE);
            $output = curl_exec($curl);
            curl_close($curl);
            return $output;
        }
    
    
    

    使用 composer require guzzlehttp/guzzle 这个库的话,代码如下

        //postjson请求: 返回图片buffer 
        public static function  http_post_json($request_url,$query){
            $client = new GuzzleHttpClient([
                'verify'=>false,
            ]);
            $raw_data = json_encode($query);
            $res = $client->request('POST', $request_url, [
                'headers' => [
                    'Content-Type'  => 'application/json',
                ],
                'body' => $raw_data, 
                ] 
            );
            $img_buffer = $res->getbody();
            return $img_buffer; //注意此处你要看结果的话要直接 echo输出,不要print_r
        }
    
    
  • 相关阅读:
    python数据结构树和二叉树简介
    python双向链表的实现
    Python单向链表的实现
    栈和队列数据结构的基本概念及其相关的Python实现
    模型融合目录
    算法汇总目录
    一个完整的机器学习目录
    python基础-面向对象opp
    Python random模块
    python-字符串前面添加u,r,b的含义
  • 原文地址:https://www.cnblogs.com/richerdyoung/p/13042382.html
Copyright © 2011-2022 走看看