如何通过点击一个链接关注微信公众帐号注册流程

页面导航:
→ 正文内容 微信公众号点击菜单即可打开并登录微站
微信公众号点击菜单即可打开并登录微站的实现方法
这篇文章主要介绍了微信公众号点击菜单即可打开并登录微站的实现方法,以实例形式对回调、菜单及参数的处理等具体实现步骤与功能代码都做了较为详细的描述,对于微信公众号的开发来说具有很好的参考借鉴价值,需要的朋友可以参考下
本文实例讲述了微信公众号点击菜单即可打开并登录微站的实现方法。分享给大家供大家参考。具体分析如下:
总体来说,微信公众号点击菜单即可打开并登录微站实现步骤比较复杂,但很多微站在己用上了,本文对此进行整理归纳,相信可以给大家带来一定的参考借鉴价值。
现在大部分微站都通过用户的微信openid来实现自动登录。在我之前的开发中,用户通过点击一个菜单,公众号返回一个图文,用户点击这个图文才可以自动登录微站。但是如果你拥有高级接口,就可以实现点击菜单,打开网页就能获取这个openid,实现自动登录。
这里已经提到,必须要拥有高级接口的权限(服务号、企业号),开启了开发者模式。
1.设置回调地址
在微信公众平台后台“开发者中心”中找到“高级接口”下的“OAuth2.0网页授权”,后面有一个“修改”,点击之后就会弹出填写回调地址的对话框。具体如何授权,请点击这里学习。只有获得高级接口权限后,才能出现这个地方的“修改”。
注意,这里填写的是域名,不是带的网址,而且解释中很清楚,“授权回调域名配置规范为全域名”,也就是说带www和不带是不同的两个域名。因此我这里要填写如下图中的域名。
2. 创建菜单
创建菜单可以通过你的微站后台创建,如果没有开启开发者模式,也可以通过微信公众平台后台创建。
菜单使用点击打开链接的模式,也就是view模式。如果你是使用开发者模式,通过向微信提交如下代码,即可创建公众号菜单(开发者文档):
代码如下:{
&&&& "button":[
&&&&&&&&& "type":"view",
&&&&&&&&& "name":"登录微站",
&&&&&&&&& "url":"https://open./connect/oauth2/authorize?appid={在微信公众平台后台获取这个APPID}&redirect_uri={你填写的回调域名下的地址}&response_type=code&scope=snsapi_base&state=1#wechat_redirect"
代码1 要提交的菜单代码,下面要用到
APPID的获取位置就是上面你填写回调地址的那个“开发者中心”。下面我们用PHP来实现一下菜单提交:
代码如下:&?php
function curl_info($appid,$secret) {
& $ch = curl_init();
& curl_setopt($ch, CURLOPT_URL, "https://api./cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret);
& curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
& curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
& curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
& curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 ( MSIE 5.01; Windows NT 5.0)');
& curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
& curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
& // curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
& curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
& $tmpInfo = curl_exec($ch);
& if (curl_errno($ch)) {&
&&& echo 'Errno'.curl_error($ch);
& curl_close($ch);
& $arr= json_decode($tmpInfo,true);
& return $
function curl_menu($ACCESS_TOKEN,$data) {
& $ch = curl_init();
& curl_setopt($ch, CURLOPT_URL, "https://api./cgi-bin/menu/create?access_token=".$ACCESS_TOKEN);
& curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
& curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
& curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
& curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 ( MSIE 5.01; Windows NT 5.0)');
& curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
& curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
& curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
& curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
& $tmpInfo = curl_exec($ch);
& if (curl_errno($ch)) {
&&& echo 'Errno'.curl_error($ch);
& curl_close($ch);
& $arr= json_decode($tmpInfo,true);
& return $
function creat_menu() {
& $ACCESS_LIST= curl_info(APP_ID,APP_SCR);//获取到的凭证,你需要自己define APP_ID和APP_SCR(应用密钥),这个也是在微信公众平台后台开发者中心找
& if($ACCESS_LIST['access_token']!='') {
&&& $access_token = $ACCESS_LIST['access_token'];//获取到ACCESS_TOKEN
&&& $data = '把上面代码1拷贝黏贴在这里';
&&& $msg = curl_menu($access_token,preg_replace("#u([0-9a-f]+)#ie", "iconv('UCS-2', 'UTF-8', pack('H4', '1'))", $data));
&&& if($msg['errmsg']=='ok') {
&&&&& die('创建自定义菜单成功!');
&&& else {
&&&&& die('创建自定义菜单失败!');
&&& die('创建失败,微信AppId或微信AppSecret填写错误');
create_menu();
代码2 用PHP来创建微信公众号菜单
代码2其实有点冗余了,核心部分用红色标出来了。就这样,你的微信公众号中应该很快就可以看到创建了一个“登录微站”的菜单。点击这个菜单就可以实现登录微站了。
如果你不需要PHP,可以直接在微信公众平台后台的菜单自定义中写链接就可以了。
在上图中的这个地方,选择打开链接的方式创建菜单。OK,接下来把上面那个链接放进去:
https://open./connect/oauth2/authorize?appid={在微信公众平台后台获取这个APPID}&redirect_uri={你填写的回调域名下的地址}&response_type=code&scope=snsapi_base&state=1#wechat_redirect
创建菜单就可以了。
当然,你也有可能只需要在你自己的微信管理后台加入这个链接就可以了。
3.在回调页获取openid
细心的你可能已经发现了,上面的链接地址中含有参数scope=snsapi_base,而非scope=snsapi_userinfo,因为使用前者不需要用户点击一个授权按钮,直接跳转到回调页面,而后者需要点击授权按钮,不过点击授权按钮有好处,一是可以在没有关注公众号的情况下也可以授权,二是授权后可以获得用户的一些信息,如昵称、性别、所在地。但是我们是为了利用openid进行登录,所以直接选择前者就可以了。
点击菜单之后,经过微信authorize的处理,会跳转到你提交的回调地址(这里需要提醒,回调地址最好不要带参数,例如xxx/?callback=from_weixin,因为微信跳转到你的回调地址也要带参数,而这个参数就你需要的)。微信跳转到如下URL:
回调地址/?code=CODE&state=1
上面代码可以通过$_GET['code']获得一个CODE值,利用这个CODE值和appid,可以获得openid和access_token。
下面再用PHP来实现以下:
代码如下:if($_GET['code']) {
& $code = $_GET['code'];
& $data = get_by_curl('https://api./sns/oauth2/access_token?appid=APPID&secret=APPSRC&code='.$code.'&grant_type=authorization_code');
& $data = json_decode($data);
& $openid = $data-&
& $access_token = $data-&access_
function get_by_curl($url,$post = false){
&&& $ch = curl_init();
&&& curl_setopt($ch,CURLOPT_URL,$url);
&&& curl_setopt($ch, CURLOPT_HEADER, 0);
&&& curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
&&& if($post){
&&&&&&& curl_setopt($ch, CURLOPT_POST, 1);
&&&&&&& curl_setopt($ch, CURLOPT_POSTFIELDS,$post);
&&& $result = curl_exec($ch);
&&& curl_close($ch);
&&& return $
这样可以就可以获得openid和access_token,利用这些值,我们还可以利用微信公众平台的获取用户基本信息api接口获取用户基本信息。
希望本文所述对大家基于PHP的微信公众号开发有所帮助。
您可能感兴趣的文章:
上一篇:下一篇:
最 近 更 新
热 点 排 行
12345678910> 微信公众号网页上添加分享到朋友圈、发送给朋友的代码
微信公众号网页上添加分享到朋友圈、发送给朋友的代码
代码已经失效:目前只能自定义发送给好友,分享到朋友圈的缩略图,链接,标题和摘要
开始支持前端网页,大家可能看到很多网页上都有分享到朋友圈,关注微信等按钮,点击它们都会弹出一个窗口让你分享和关注,这个是怎么实现的呢?今天就给大家讲解下如何在微信公众平台前端网页上添加分享到朋友圈,关注微信号等按钮。
微信内嵌浏览器
通过 Mac 远程调试 iPhone 上微信自己的网页,我们可以发现微信内嵌浏览器定义了一个私有 JavaScript 对象:WeixinJSBridge,通过操作这个对象的相关方法可以实现分享到微信朋友圈,和判断一个微信号的关注状态以及实现关注指定微信号等功能。
分享到朋友圈
function weixinShareTimeline(title,desc,link,imgUrl){
WeixinJSBridge.invoke('shareTimeline',{
&img_url&:imgUrl,
//&img_width&:&640&,
//&img_height&:&640&,
&link&:link,
&desc&: desc,
&title&:title
发送给好友
function weixinSendAppMessage(title,desc,link,imgUrl){
WeixinJSBridge.invoke('sendAppMessage',{
//&appid&:appId,
&img_url&:imgUrl,
//&img_width&:&640&,
//&img_height&:&640&,
&link&:link,
&desc&:desc,
&title&:title
分享到腾讯微博
function weixinShareWeibo(title,link){
WeixinJSBridge.invoke('shareWeibo',{
&content&:title + link,
&url&:link
关注指定的微信号
function weixinAddContact(name){
WeixinJSBridge.invoke(&addContact&, {webtype: &1&,username: name}, function(e) {
WeixinJSBridge.log(e.err_msg);
//e.err_msg:add_contact:added 已经添加
//e.err_msg:add_contact:cancel 取消添加
//e.err_msg:add_contact:ok 添加成功
if(e.err_msg == 'add_contact:added' || e.err_msg == 'add_contact:ok'){
//关注成功,或者已经关注过怎么实现点击链接后自动关注特定微信公众号?
只要腾讯愿意开发此类接口,实现不难}

我要回帖

更多关于 微信公众帐号认证 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信