官方文档地址: 创建二维码
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
}