微信公众平台开发(99) 自定义菜单获取OpenID

关键字 微信公众平台 自定义菜单 OpenID
作者:方倍工作室
原文:http://www.cnblogs.com/txw1958/p/weixin-menu-get-openid.html

 

在这篇微信公众平台开发教程中,我们将介绍如何在自定义菜单中获得用户的OpenID。

本篇开发教程的实质是微信自定义菜单及OAuth2.0授权的灵活运用。

本文分为以下两个部分:

  1. 拥有高级接口权限时的获取(基于view事件)
  2. 没有高级接口权限时的获取(基于click事件)

 

一、拥有高级接口权限

拥有高级接口权限时,我们使用OAuth2.0授权的方式来获取。

OAuth2.0的详细设置方法,请参考 微信公众平台开发(71)OAuth2.0网页授权

在设置好授权回调页面域名之后,我们需要构造菜单,为了方便同时讲解下一小节,我们菜单构造如下

{
    "button": [
        {
            "type": "click",
            "name": "图文获取",
            "key": "图文"
        },
        {
            "type": "view",
            "name": "授权获取",
            "url": "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx0738856156f7323c&redirect_uri=http://israel.sinaapp.com/oauth2/&response_type=code&scope=snsapi_base&state=1#wechat_redirect"
        }
    ]
}

菜单的构成中,核心思想在于url是一个授权回调url,这样才能在菜单点击的时候使用oauth2.0授权获得openid

这样将生成两个菜单如下

当点击 授权获取的时候,将访问授权页面,页面将使用OAuth2.0的方式获得openid。

代码可以参考《微信公众平台开发最佳实践》第72页。

跳转后显示如下:

 

二、没有高级接口权限

对于没有高级接口权限的账号,就不能使用view事件获得OpenID,需要使用click事件来实现

实现原理就是获得接收消息中的FromUserName值,并且在url中构造openid的参数即可

在自定义菜单中响应代码如下

 1 private function receiveEvent($object)
 2 {
 3     $content = "";
 4     switch ($object->Event)
 5     {
 6         case "subscribe":
 7             $content[] = array("Title"=>"欢迎关注方倍工作室",  "Description"=>"", "PicUrl"=>"http://discuz.comli.com/weixin/weather/icon/cartoon.jpg", "Url" =>"http://m.cnblogs.com/?u=txw1958");
 8             break;
 9         case "CLICK":
10             switch ($object->EventKey)
11             {
12                 case "图文":
13                     $content[] = array("Title"=>"OpenID", "Description"=>"你的OpenID为:".$object->FromUserName, "PicUrl"=>"", "Url" =>"http://m.cnblogs.com/?u=txw1958&openid=".$object->FromUserName);
14                     break;
15             }
16             break;
17     }
18     if(is_array($content)){
19         $result = $this->transmitNews($object, $content);
20     }else{
21         $result = $this->transmitText($object, $content);
22     }
23     return $result;
24 }

运行后效果如下所示。

 

 

时间: 2024-08-30 09:02:16

微信公众平台开发(99) 自定义菜单获取OpenID的相关文章

微信公众平台开发(104) 自定义菜单扫一扫、发图片、发地理位置

关键字:微信公众平台 自定义菜单 扫一扫 发图片 发地理位置作者:方倍工作室原文:http://www.cnblogs.com/txw1958/p/weixin-menu-new-type.html    自定义菜单能够帮助公众号丰富界面,让用户更好更快地理解公众号的重要功能.微信增加了点击菜单后调起扫一扫(支持二维码/一维码).发图片.发地理位置的能力,需开发实现.原有自定义菜单开发权限的公众号,均可获得以上能力. 在这篇微信公众平台开发教程中,我们将介绍如何在自定义菜单上开发扫一扫.发图片.

微信公众平台开发之自定义菜单.Net代码解析_实用技巧

用户自定义菜单制作时,需要用到access_token,我们直接使用前面讲解的IsExistAccess_Token()函数.我理解的微信公共平台里面菜单分为button和sub_button,即菜单和子菜单,这些菜单都有一个name的属性,类别分为click和view,click类有key属性:而view类有url属性,含有子菜单的菜单没有key属性也没有url属性.这些情况可以从下面的例子看出来. public void MyMenu() { string weixin1 = ""

微信公众平台开发(109) 个性化菜单

关键字:微信公众平台 个性化菜单 conditionalmenu 作者:方倍工作室 原文:http://www.cnblogs.com/txw1958/p/weixin-menu-conditional.html    为了帮助公众号实现灵活的业务运营,微信公众平台新增了个性化菜单接口,开发者可以通过该接口,让公众号的不同用户群体看到不一样的自定义菜单.该接口开放给已认证订阅号和已认证服务号. 在这篇微信公众平台开发教程中,我们将介绍如何开发个性化菜单的功能.   一.个性化菜单接口 开发者可以

微信公众平台开发(71) 网页授权获取用户基本信息

微信公众平台开发 OAuth2.0网页授权认证 网页授权获取用户基本信息 作者:方倍工作室   微信公众平台最近新推出微信认证,认证后可以获得高级接口权限,其中一个是OAuth2.0网页授权,很多朋友在使用这个的时候失败了或者无法理解其内容,希望我出个教程详细讲解一下,于是便有了这篇文章.   一.什么是OAuth2.0 官方网站:http://oauth.net/   http://oauth.net/2/ 权威定义:OAuth is An open protocol to allow sec

微信公众号开发之自定义菜单

微信开发交流群:148540125 系列文章参考地址 极速开发微信公众号 欢迎留言.转发 项目源码参考地址 点我点我–欢迎Start 前几篇文章已讲完如何导入项目,如何启动配置项目,如何成为开发者,重源码分析消息是如何交互(如果前四项不是很清楚可以看这里 极速开发微信公众号.这篇文章就来讲讲如果实现自定义菜单 实现自定义菜单有两种方式 1.编辑模式 2.开发模式 编辑模式就很简单了就不赘述了-- 开发模式实现自定义菜单 1.使用微信公众平台接口调试工具实现 2.使用官方提供的接口实现 前期准备

微信公众平台 开发 openId的获取

问题描述 微信公众平台 开发 openId的获取 哪位微信大牛出个获取微信openId的视屏或者博文啊! 解决方案 微信公众平台获取"openid"的方法微信公众平台开发(99) 自定义菜单获取OpenID微信公众平台开发 获得所有关注者的Openid 解决方案二: 我会贴我们公司写的代码吗~~不会~~百度一下 你就知道~

微信公众平台开发教程

本系列微信公众平台教程以PHP+MySQL为开发环境,介绍了微信公众平台开发模式下基础接口.自定义菜单.高级接口.WeiXin JS接口.微信支付等接口以及在此基础上的功能或应用开发的方法及技巧,案例极具实用价值,是学习微信公众平台开发实战的经典教材.   配套书籍 <微信公众平台开发最佳实践> 由方倍工作室编写,覆盖基础接口.自定义菜单.高级接口.微信支付.转发分享等五大接口,包含近30个案例及技巧,已成功帮助无数人进入微信开发领域. 购买地址        准备工作 微信公众平台的注册 介

【微信Java开发 --2】接入微信公众平台开发,配置自己的服务器,验证过程【验证服务器、自定义菜单、微信端消息分发】

接入微信公众平台开发,开发者需要按照如下步骤完成: 1.填写服务器配置 2.验证服务器地址的有效性 3.依据接口文档实现业务逻辑 好我们就开始:1.登录微信公众平台,进入基本配置  修改配置,将自己的服务器的URL地址,配置在此处: 填写完成后,[先不用 提交],先进行第二步 服务器端代码的配置   注意: 如果想使用  自定义菜单等相关接口权限,需要注意:   可以看到  个人订阅号是没有 使用自定义菜单的相关接口能力的,如果需要使用的话,需要注册服务号或使用测试号:    那么 在服务器端代

Senparc.Weixin.MP SDK 微信公众平台开发教程(九):自定义菜单接口说明

原文:Senparc.Weixin.MP SDK 微信公众平台开发教程(九):自定义菜单接口说明     上一篇<Senparc.Weixin.MP SDK 微信公众平台开发教程(八):通用接口说明>介绍了如何通过通用接口获取AccessToken,有了AccessToken,我们就可以来操作自定义菜单,以及其他的高级接口,这一篇单讲自定义菜单.   一.自定义菜单规则 自定义菜单分为一级菜单和二级菜单. 一级菜单数量为1-3个,即打开公众账号直接可以看到排列在最下方的最多3个按钮.一级菜单的