>  기사  >  웹 프론트엔드  >  맞춤형 menu_javascript 기술을 생성하기 위한 .NET WeChat 공개 계정 개발

맞춤형 menu_javascript 기술을 생성하기 위한 .NET WeChat 공개 계정 개발

WBOY
WBOY원래의
2016-05-16 15:50:001477검색

1. 서문

개발하기 전에 공식 인터페이스 문서를 읽어야 합니다. 위챗의 공식 문서가 정말 형편없다고 불평해야 하지만, 필요한 기능을 개발하려면 이 문서도 읽어야 합니다.

인터페이스 문서 주소: http://mp.weixin.qq.com/wiki/13/43de8269be54a0a6f64413e4dfa94f39.html

이 문서를 읽은 후에는 우리가 만들고 싶은 메뉴를 만들고 이를 WeChat 서버에 게시하면 메뉴가 성공적으로 생성되었는지 확인하기 위해 몇 가지 상태 코드를 제공합니다. JSON 데이터를 보내기 전에 몇 가지 인증을 수행해야 합니다.

2. 준비

먼저 만들고 싶은 메뉴를 txt 텍스트로 작성하세요.

 {
   "button":[
    {
      "type":"view",
      "name":"付停车费",
      "url":"http://www.baidu.com"
  
    },{
      "name":"个人中心",
      "sub_button":[
      {  
        "type":"view",
        "name":"个人信息",
        "url":"http://www.baidu.com"
      },
      {
        "type":"view",
        "name":"订单查询",
        "url":"http://www.baidu.com"
      },
      {
        "type":"view",
        "name":"使用帮助",
        "url":"http://www.baidu.com"
      },
      {
        "type":"view",
        "name":"下载APP",
        "url":"http://www.baidu.com"
      }]
    }]
 }

3.코딩을 시작하세요

먼저 일반 핸들러 createMenu.ashx를 생성합니다.

코드 복사 코드는 다음과 같습니다.

공개 문자열 access_token { get }
protected void Page_Load(개체 전송자, EventArgs e)
            {
FileStream fs1 = new FileStream(Server.MapPath(".") "\menu.txt", FileMode.Open);
​​​​​​ StreamReader sr = new StreamReader(fs1, Encoding.GetEncoding("UTF-8"));
                문자열 메뉴 = sr.ReadToEnd();
             sr.Close();
                     fs1.Close();
        var str = GetPage("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wxd811f5114e3e56f3&secret=76eb33f66129692da16d148cb3c024f1" , "");
               JObject jo = JObject.Parse(str);
            access_token = jo["access_token"].ToString();
GetPage("https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" access_token "", 메뉴);
}

여기서 주목해야 할 점은 appid 및 secret 매개변수를 우리의 매개변수로 바꿔야 한다는 것입니다. 이러한 매개변수를 구성 파일에 넣을 수 있습니다. 도우미 클래스에 별도로 배치할 수도 있습니다.

동시에 메뉴를 만들 때 신원을 확인하기 위해 내 access_token을 가져와야 합니다. 따라서 가장 먼저 해야 할 일은 인터페이스를 통해 토큰을 얻는 것입니다. , appid 및 secret 매개변수만 전달하면 됩니다

코드 복사 코드는 다음과 같습니다.

{"access_token":"jVLAT9Rp9dNgxI4pb4RWlSx_9HJLXICmk_uWDlRtAug8wcaWhZZ10eqZCYRZrEwCIJf1-vBhS9YEX00Dj7q__lJCyTIWOxTruOd25opkf-0","expires_in":7200}

위 GetPage 메서드의 반환 값입니다. 그래서 우리는 토큰을 얻을 수 있습니다.

마지막 단계: 토큰을 가져오고 json 메뉴 데이터를 게시하여 메뉴를 만듭니다.

다음 코드가 표시되는 경우:

{"errcode":0,"errmsg":"확인"}
이는 메뉴가 성공적으로 생성되었음을 의미합니다.

4: GetPage

코드는 다음과 같습니다.

    public string GetPage(string posturl, string postData)
    {
      Stream outstream = null;
      Stream instream = null;
      StreamReader sr = null;
      HttpWebResponse response = null;
      HttpWebRequest request = null;
      Encoding encoding = Encoding.UTF8;
      byte[] data = encoding.GetBytes(postData);
      // 准备请求...
      try
      {
        // 设置参数
        request = WebRequest.Create(posturl) as HttpWebRequest;
        CookieContainer cookieContainer = new CookieContainer();
        request.CookieContainer = cookieContainer;
        request.AllowAutoRedirect = true;
        request.Method = "POST";
        request.ContentType = "application/x-www-form-urlencoded";
        request.ContentLength = data.Length;
        outstream = request.GetRequestStream();
        outstream.Write(data, 0, data.Length);
        outstream.Close();
        //发送请求并获取相应回应数据
        response = request.GetResponse() as HttpWebResponse;
        //直到request.GetResponse()程序才开始向目标网页发送Post请求
        instream = response.GetResponseStream();
        sr = new StreamReader(instream, encoding);
        //返回结果网页(html)代码
        string content = sr.ReadToEnd();
        string err = string.Empty;
        Response.Write(content);
        return content;
      }
      catch (Exception ex)
      {
        string err = ex.Message;
        return string.Empty;
      }
    }

위 내용은 이 글의 전체 내용입니다. 모두 마음에 드셨으면 좋겠습니다

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.