字节跳动小程序 “创建二维码图片接口的报错bad access_token”解决方法

官方文档地址: 创建二维码

https://microapp.bytedance.com/dev/cn/mini-app/develop/server/qr-code/createqrcode

 

论坛帖子地址: {errcode:40002,errmsg:bad access_token}

https://forum.microapp.bytedance.com/mini-app/posts/5dc65243f5dbe415dc1552b3

 

解决方法

 /**
     * 获取小程序/小游戏的二维码。
     * @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 \GuzzleHttp\Client([
            '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
    }
    A+
发布日期:2020年06月09日 20:21:11  所属分类:PHP
最后更新时间:2020-06-09 20:21:11
头像
  • ¥ 59.0元
  • 市场价:99.0元
  • ¥ 298.0元
  • 市场价:498.0元
  • ¥ 69.0元
  • 市场价:99.0元
  • ¥ 498.0元
  • 市场价:498.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: