hello扫雷 2024-02-10 12:17 采纳率: 78.4%
浏览 19
已结题

微信小程序js接入文心一言


  const request = require('request')
const AK = "省略"
const SK = "省略"

async function test() {
  var options = {
      'method': 'POST',
      'url': 'https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/text2image/sd_xl?access_token=' + await getAccessToken(),
      'headers': {
              'Content-Type': 'application/json',
              'Accept': 'application/json'
      },
      body: JSON.stringify({
              "prompt": "画几棵树",
              "size": "1024x1024",
              "n": 1,
              "steps": 20,
              "sampler_index": "Euler a"
      })
  }

  request(options, function (error, response) {
      if (error) throw new Error(error);
      console.log(response.body);
  });
};
function getAccessToken() {

  let options = {
      'method': 'POST',
      'url': 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + AK + '&client_secret=' + SK,
  }
  return new Promise((resolve, reject) => {
      request(options, (error, response) => {
          if (error) { reject(error) }
          else { resolve(JSON.parse(response.body).access_token) }
      })
  })
};

微信小程序js文件,想问下如何调用这个test函数,不管怎么调用都会报错

  • 写回答

4条回答 默认 最新

  • 专家-郭老师 Java领域新星创作者 2024-02-10 12:18
    关注

    参考通义千问和郭老师的小迷弟雅思莫了-编写提供,主要是为了帮助您快速解决问题,如下回答,您可以参考下,如有问题,评论区留言。

    在微信小程序中,由于其运行环境的限制,并不能直接使用 Node.js 的 request 模块。你需要使用微信小程序提供的 wx.request 方法来发起 HTTP 请求。

    以下是如何修改您的代码以适应微信小程序的请求方式:

    const AK = "省略";
    const SK = "省略";
    
    async function test() {
      try {
        const accessToken = await getAccessToken();
        const requestUrl = 'https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/text2image/sd_xl?access_token=' + accessToken;
    
        wx.request({
          url: requestUrl,
          method: 'POST',
          header: {
            'Content-Type': 'application/json',
            'Accept': 'application/json'
          },
          data: {
            "prompt": "画几棵树",
            "size": "1024x1024",
            "n": 1,
            "steps": 20,
            "sampler_index": "Euler a"
          },
          success: (res) => {
            console.log(res.data);
          },
          fail: (err) => {
            console.error(err);
          }
        });
      } catch (error) {
        console.error(error);
      }
    }
    
    function getAccessToken() {
      return new Promise((resolve, reject) => {
        wx.request({
          url: 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + AK + '&client_secret=' + SK,
          method: 'POST',
          success: (res) => {
            if (res.statusCode === 200) {
              resolve(res.data.access_token);
            } else {
              reject(new Error('获取 access_token 失败'));
            }
          },
          fail: (err) => {
            reject(err);
          }
        });
      });
    }
    
    // 调用 test 函数
    test();
    

    请确保在合适的上下文中调用 test() 函数,例如在页面的 onLoad 生命周期函数中或其他适当的地方。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 2月18日
  • 已采纳回答 2月10日
  • 创建了问题 2月10日

悬赏问题

  • ¥20 Html备忘录页面制作
  • ¥15 黄永刚的晶体塑性子程序中输入的材料参数里的晶体取向参数是什么形式的?
  • ¥20 数学建模来解决我这个问题
  • ¥15 计算机网络ip分片偏移量计算头部是-20还是-40呀
  • ¥15 stc15f2k60s2单片机关于流水灯,时钟,定时器,矩阵键盘等方面的综合问题
  • ¥15 YOLOv8已有一个初步的检测模型,想利用这个模型对新的图片进行自动标注,生成labellmg可以识别的数据,再手动修改。如何操作?
  • ¥30 NIRfast软件使用指导
  • ¥20 matlab仿真问题,求功率谱密度
  • ¥15 求micropython modbus-RTU 从机的代码或库?
  • ¥15 django5安装失败