收藏
回答

云函数怎么使用getAccessToken

问题模块 框架类型 问题类型 终端类型 AppID 基础库版本
云开发 小程序 需求 工具 wx8df00821371cf936 2.4.1

- 需求的场景描述(希望解决的问题)

我想在云函数中获取access_token,可是不知道怎么写获取的代码,官方文档中只有一个请求地址,不知道使用方法。

- 希望提供的能力

希望给初学者多一些简单案例模仿学习。

最后一次编辑于  2018-12-07  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

1 个回答

  • 半寸灰
    半寸灰
    2018-12-07


    首先安装  request-promise

    npm 命令  npm   install  request-promise


    // 云函数入口文件

    const cloud = require('wx-server-sdk')

    //npm   install  request-promise

    const rp = require('request-promise');

     

    cloud.init()

     

    // 云函数入口函数

    exports.main = async (event, context) => {

     

      //appid   和秘钥

      const appid = 'wxxxxxxxx',

         secret = 'xxxxxxxxxxxx';

     

      const AccessToken_options = {

         method: 'GET',

         url: 'https://api.weixin.qq.com/cgi-bin/token',

         qs: {

           appid,

           secret,

           grant_type:'client_credential'

         },

         json: true

        

       };

     

      //获取AccessToken

      const resultValue = await rp(AccessToken_options);

      const token = resultValue.access_token;


     
     
     
     

     


     
     

      return token ;


     

    }

     


    2018-12-07
    赞同 2
    回复 2
    • i
      i
      2018-12-07

      谢谢你提供的方法,另外也找到一个方法,但是看不太懂resolve 和reject 的用处,如果可以的话帮我解释下,谢谢

      let wxContext = cloud.getWXContext();
        let secret = '';
        let url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' + wxContext.APPID + '&secret=' + secret;
        return new Promise((resolve, reject) => {
          try {
            request(url, (err, res, body) => {
              if (err) {
                console.log('getToken error:' + reject(err));
                return '';
              } else if (res.statusCode == 200) {
                return resolve(body);
              }
            });
          } catch (err) {
            console.log(err);
            return '';
          }
        });


      2018-12-07
      回复
    • 半寸灰
      半寸灰
      2018-12-10回复i

      差不多

      我的只是别人帮你封装好了,你的自己封装了

      2018-12-10
      回复